From 714e46bf36aaf843d6e3d2e4fe7b7915ff68ebb2 Mon Sep 17 00:00:00 2001 From: OddlyTimbot <timbot@oddlystudios.com> Date: Mon, 20 Jan 2025 20:43:55 -0500 Subject: [PATCH] character animations, gamecontroller --- .../assets/graphics/destructables/crate.png | Bin 0 -> 1761 bytes .../graphics/destructables/crate.png.import | 34 ++++ .../player/idle/Player Idle 48x48.png | Bin 0 -> 1853 bytes .../player/idle/Player Idle 48x48.png.import | 34 ++++ .../player/jump/player jump 48x48.png | Bin 0 -> 1021 bytes .../player/jump/player jump 48x48.png.import | 34 ++++ .../graphics/player/run/player run 48x48.png | Bin 0 -> 3199 bytes .../player/run/player run 48x48.png.import | 34 ++++ .../graphics/projectiles/pixel_bullet.png | Bin 0 -> 3870 bytes .../projectiles/pixel_bullet.png.import | 34 ++++ .../graphics/terrains/Terrain (32x32).png | Bin 0 -> 11796 bytes .../terrains/Terrain (32x32).png.import | 34 ++++ januaryproject/project.godot | 8 + januaryproject/scenes/bullet.tscn | 10 +- januaryproject/scenes/crate.tscn | 10 +- januaryproject/scenes/game.tscn | 32 ++-- januaryproject/scenes/player.tscn | 178 +++++++++++++++++- januaryproject/scripts/bullet.gd | 7 +- januaryproject/scripts/charactercontroller.gd | 34 +++- januaryproject/scripts/gamecontroller.gd | 9 +- januaryproject/scripts/scene_manager.gd | 41 +++- 21 files changed, 498 insertions(+), 35 deletions(-) create mode 100644 januaryproject/assets/graphics/destructables/crate.png create mode 100644 januaryproject/assets/graphics/destructables/crate.png.import create mode 100644 januaryproject/assets/graphics/player/idle/Player Idle 48x48.png create mode 100644 januaryproject/assets/graphics/player/idle/Player Idle 48x48.png.import create mode 100644 januaryproject/assets/graphics/player/jump/player jump 48x48.png create mode 100644 januaryproject/assets/graphics/player/jump/player jump 48x48.png.import create mode 100644 januaryproject/assets/graphics/player/run/player run 48x48.png create mode 100644 januaryproject/assets/graphics/player/run/player run 48x48.png.import create mode 100644 januaryproject/assets/graphics/projectiles/pixel_bullet.png create mode 100644 januaryproject/assets/graphics/projectiles/pixel_bullet.png.import create mode 100644 januaryproject/assets/graphics/terrains/Terrain (32x32).png create mode 100644 januaryproject/assets/graphics/terrains/Terrain (32x32).png.import diff --git a/januaryproject/assets/graphics/destructables/crate.png b/januaryproject/assets/graphics/destructables/crate.png new file mode 100644 index 0000000000000000000000000000000000000000..2b8bdcd0c0b752f7079f09620a2121e2f556f925 GIT binary patch literal 1761 zcmeAS@N?(olHy`uVBq!ia0y~yV66aQ7G|Kx3)K}YKuS8mC&ZPJk@4EviZj!bwidfg zOR#ARv&?lj3p3XP%3l(<cm<>wOM?7@862M7NMm4NEAe!345_&F=3paGhM{4>-<9Gk znLx}@fG-5n-t%Qiw=HDgiN4G+!%1VxA&nj<%_&X>BHo%UP8u@~@xA||ayrX=Yw@c0 zyIl&!e2eOzewl*LKoaCON2))%{^Iur)(-I_+>c!MD8vcqcZh#%s&L!`7OCC(ZT*}5 z6@oy)Bi%qjko+T7n7sAUX?G5p-eFs}u-+`;_)!!EU@agc55!z6;G16XZ)x!P7yfz& z#SLsLu^Sin_Ocky)sk&TAFjUh_MP-Ji#s_xAvVKYhGg^pX?%B&O0};w*WR}LXz;H5 zjk~e9p7o<roWOg>tM@`~+RfsV?wOo=^<5XlcM5Sp|AOUVUd#V+YLkwB-qK{vgR@Vg zdKT^%g?o!L7ia&RJ^f|C<*jFLpF~v#4KrXU-YXA!eBn|gXSHY5^;ZcRx!ZBO?oXCg zN&D$(C1Jn1E2VTlG8u#14099Il}(^vC@*{LxWP<9@Al=SF!t`VaoxB)!v5>o(;rup z>*WKZ-)zMdfYm#~r}Zv7{AuR<s4iI4f<pvs7ewT}wfnXy>`#AxyOjLF2a+COAqGwX zVAt99L|H|7etHtIYrUj`Fwo(!#DNIjk4*WAyweN#Ok?IfuzvD?1Ka*Kbx0~g1S~9F zJ)g8crE>Rg*Oa#xv%B|-Atg3gA^_XK|2W%3>{|4lOE)!juhpEz6|0SlYZ*5ef0NnQ z@bV<i)G0Yb>+=&x(nlmPi0iTCqz3tK4;;V}C;o303<(_t1VZ3evop9BaQq)Hy@wH7 bkWwJVy}a1dc9wyq7sw1xS3j3^P6<r_SKc3( literal 0 HcmV?d00001 diff --git a/januaryproject/assets/graphics/destructables/crate.png.import b/januaryproject/assets/graphics/destructables/crate.png.import new file mode 100644 index 0000000..d88f777 --- /dev/null +++ b/januaryproject/assets/graphics/destructables/crate.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dh1d2qkxwg3vt" +path="res://.godot/imported/crate.png-91961d6f3a0764bc8758ad055606c6d0.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/graphics/destructables/crate.png" +dest_files=["res://.godot/imported/crate.png-91961d6f3a0764bc8758ad055606c6d0.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/januaryproject/assets/graphics/player/idle/Player Idle 48x48.png b/januaryproject/assets/graphics/player/idle/Player Idle 48x48.png new file mode 100644 index 0000000000000000000000000000000000000000..b618511699269f9bd10ff834f6b382e147588ebd GIT binary patch literal 1853 zcma)7_g9k%7X30{KoA&uC&-k*2m(V}iiV98siI(^NQA(IG9>gOk_3>BBH$vuD&Qj0 zI|zutNC=Ul^rDWTh5#RBW5}0<e_+qvAKrWC+<V@6=e=|8OL4Hb6cUgV002P9>Z;id z0D!HW)LQ)TllZ>qrSM6Dh1{@21Fy#v)&T&1WM%eGr^rIaB8?#7EyK6Nbb3T-b(Qi9 z@b#CjK%>(Gp1cawwlgV<%ZmI`{@Js<s&c%yFHL4rJW0vt1Mh47{HcfWfxqVap#Kr6 zT;DI|LS#%V=IDEy{E0I*Hf}O*(rE%sC`Z}4Pq$myG3?7s9j0xYD>?c9fa+O`30QKn z&+sZ~v0+J1(Lfg1ne4(UQpF`e_K~L-=Dh`*_s2~4yA!0s+1d<WLtjrK;(qzDr?5MZ zvPx<J9hy|HO4Qcsz1C0&t2hA6m~ow6e0Ebg7pqAhIZ4HcAVqRl?3|72oV+TSR@w@s zG$(^%&40{kmI0lb{jkxJ=lE)p%5EgEZGS461YgbGgbUqP&Rwo*7w(%wl9Ts05}~g- zjyB<BR!j<r>w}vR;TC2RIxU>xLj{;*R8j77@10XAu$?wdl)rA^c$Yi(opzgK>%z<j zcBll&x-Pjo8Z@7BHCBtnRxt$lWc$9nkbMxtq^K(C<NYE&I4qg=AB$DLBvCoTc|B)> zXlNW1h(?gJl}r_y8Ksx1eM^;cQRnkFdTqXE93tu3q=FMR0ym+0`DJx6&}P2XkR}y% z_Do=U*?$^VodIz8N(hm9P}jrV-?lF6ZgppqvYR5*-Shi9&L<nipEgGc-sk>R6E?W) z2TU|K#7iOjWO7mPe9*s+#Nez_cRiwsUz5bwb8u^`iF8j}iF06*`1`u^b_xrGo*MiQ z;kXHMMT4&EyA#&zo5+mmpa<mTTSqdD;KKgRN`g1Sfd_{nqSMa|<hHT%Cb?=qC15Ow zjC*hCxxF!&9HkxkI-#0EvVQo7UzKs9e7>b0ZB#=lpKbvl(k`0g+I)zh>|AhGKyhWh z*-i42H!1RA1OjP4CIH*ehRbNDDuHdtMxH>7Q9?>Qn@7lWM1{XIKC#q%>(A01*3aT< zLQh%QRUME<K0D(P4y$=71`fzXd0-gWQAEe%)r`G=)sJQpxOgLS`Z#U|uIwkhe+yrt zt@~tf7tFA0Qw)vznz#FT9btaaGn(gsrB*Jd3L@)na!_vbzdwEue9MbNa9kt-xnCz8 zWlD;JdxDxxe1-S7TBfBz%L|#unQtV#YhYgYe;*S`%X=8Q;SKK0y0(~%DelL&;O=zm z#y`yz>qyokC<7cmfWdP8$eqa62<hnlr4@oLa)!qY6UT!OqTqZ>U2CJ1W9>CB=#IPK zoIlWU+Cz*FBuUX%)=e>SE!V0*Cyno=q8oJ#6dHXO}{nMM;!qc|BkNNty5-4~yF zi#|bE+@t;x{QGaK;#b8LK(@G*HUzFplPPHRQTG5DGABqxQ{8NLr)-pS<g0Ns-Zk4f zFVJ)wrfVA)#GaGw(_eD5L5jOh;aRl{;h$vi7-OurH^d)`C8k+&T(Li9B0ij~f_V(o zA1q?0X;Dt<atOB$F-$dZa_TY~xox1!C}=ll`mHWPGR*^FBxcF{;}N4Raek<(YC)<# zk3#$DS&4zYMv-n7{xZIM3?R=rlYK^)4Fjf7!K^4pYmPq?Mcu3DyzV12Kt;pk3krhF z1s<{nQZ_QQ+w~*|b_tBj27+hyD<?%Sh5qc)gC`8Ma6ej`zl%LuTYTj|w7afG(;>SN zm)vTd(vLJT+h*@7b1}TAI#<Ras440Xq_Sx%eFC?X&goMKJ(!4+;6e8Epiv5I;A|MY z+j#^VcyEwV=@L2bUEDeNoA(dj+1Bm`hRD*fJq|l-%*(AQJqLL=A`k#AZ3CcN2h0{C zK}ujZVb3a>JFEUJbLr+#8IM8XiL+@1{f)jtJi8nr2qsB?7u#RyOI?>S)#x6SdspE( z{zM-Z-6+Ci2PoGh=j%CGhSM`*>Bqzk#Ef&V|K{eG{AxPH1N5wKY~Gn4TFE1=FI`f* zt>Bl7Dr^<$D|pd8pCtd*RajHqbcA+yE6$dTg(2N-YvoiOs25vc+N8bXDU^evrEi$z zjSWmRH;962W!g_3Z(b`IDyC@CGc0CwR_45$7iKhQJ7O(5uq>(i!6j1>#r9a}O%{&F z8(Q<FBAOwX?6UyHsl$?hFcN<$%Fz=Vvo;|)U3-frbe1y;MB458))JmK@_q?}Yv~8` zX&zue@E5b<el3#a%UTlh1*hsUty46O6)zY9cWaBhLVUvyLz<$YL_>ZpI9=pgG-Nb# zI^Kz!r2K`Lz2Kp?z<F3iey%4$ZZy1iYB5}+kvB&|xhUs3P+atX;Cd*;=Ri$hcgW7C Rp8P|=%G}=UHTquMe*tJPoMiw2 literal 0 HcmV?d00001 diff --git a/januaryproject/assets/graphics/player/idle/Player Idle 48x48.png.import b/januaryproject/assets/graphics/player/idle/Player Idle 48x48.png.import new file mode 100644 index 0000000..152f4c6 --- /dev/null +++ b/januaryproject/assets/graphics/player/idle/Player Idle 48x48.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://c8esv4rqrll0u" +path="res://.godot/imported/Player Idle 48x48.png-9f43f14976963a2821a06ddf8579a76a.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/graphics/player/idle/Player Idle 48x48.png" +dest_files=["res://.godot/imported/Player Idle 48x48.png-9f43f14976963a2821a06ddf8579a76a.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/januaryproject/assets/graphics/player/jump/player jump 48x48.png b/januaryproject/assets/graphics/player/jump/player jump 48x48.png new file mode 100644 index 0000000000000000000000000000000000000000..dff105cfac881171ef96781bd9bbd40e413dd6a7 GIT binary patch literal 1021 zcmV<Z0|NYsP)<h;3K|Lk000e1NJLTq0058x001xu1^@s6{#x@^000BTNkl<Zc%1E< zKS&%w6vn@eu}LB6Le7xH<^n=cj93Rt!Q+Hf7RK%%RwC(A+6B2Pf=w`iSOp>mEQ7U} zLs5iSL^<MtRw5*YB9~&Fb9QcKZ)bP*cIJFP*ursK-k)#Ydvk{XK@bE%5ClOG1VIo4 zK@da>ysQndjn_Z_)cK!3y?8`13c+Y_To1lzKf`rD(zM^$i(L=C%6^9Hexzmp9TP7J z3x2D_5a!4t4@Lw;++IjPL?TE)*M!XouFOAKKtr?u-6Zv(YkUXd<Tc(!-uxJB1p4jw zf69I9D|47RDc$N=sYo0YmIPG-`pO5^1)diUkINzoI}Gb9a{!Qv{fUNX-stz^_oRD1 zJXo^ob0C#?qF|#h?BUnNT#QXF0PyWM?L%w<MNP!m<bpMUUpg)-?Fg$rHWKEG3??D~ z_?BBUmXBBhigSvy77+{hz_X_SfW^^mk3Bl#$=VN~*%y&8e{x+90r(<fPZC@1>i)sf zak0Mh>nO11+UfNJza4o$n<0Rk1Z07%>MV|KH|Cnd*}PH={w!JoU_k}q;T@2{2S2OR zD+a#QyBe@rHR$i1USRL^qA`5(r#B^2wb1c{XQEaxHcV>?NY(}bx#42)8SNHPEAhx+ zwgbTUmm?2ozQJTIB3(a3CTazbJxT1)Zea|u@~8|2{NOX;WZ4432(zCtQ7d>^3MYza z`pO61;cUJh#UB&2?Ypp<laiNp3y6|{PCzD}N>T6D78R|4^6h|6#?IDsW4&75XzcI( zI|u+6TJ`se!ZF#4lOpqh+0S5p*beUt&(-{yaUWs}2=GNDGqzgZXbL{yCx91`EdrAH za5aCX+;6jxRN?`E{`@|6r*cN^Po;%Do_#4@uM~^*CnFzWVt7lNu6Os9ze}qfq(y&z zAN~3LRNk#6AiixSnJ2yu4LOwnk>Ay7)+Q(!7+wzKMJ61R2SEE47DYJB3DHoS125zG z=NfjWa)C7$d|>gvJRb?fU-ZQUv9Iw_V7=DGio;H>%!gN%iq-8`MjGM)49-BT&x$2f zCLY@o5T)$9hFE?0!P#ULO;mw=BX5G;-Lu&+QdM<q6Axoxc-h<8ny$;l<9hXBc}b)F z8f#&##AAEl#lrvueIn$<Zee1H48sla1d)lyc0YL9C4M6_P?)i{2fdYeT)Y6ZlUM?Z zT76s>kLz^zY<j#uY2+hu1yYrI+r=ZJRokL!)C~P+>NPI6;W(H&45@yQ*hzGvh%)2y re59^(3$vL{@`WG>f*=TjXb=AZ>!Ac3Jx|zZ00000NkvXXu0mjfKxWs7 literal 0 HcmV?d00001 diff --git a/januaryproject/assets/graphics/player/jump/player jump 48x48.png.import b/januaryproject/assets/graphics/player/jump/player jump 48x48.png.import new file mode 100644 index 0000000..c1af1c4 --- /dev/null +++ b/januaryproject/assets/graphics/player/jump/player jump 48x48.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cpksf8fvm4k26" +path="res://.godot/imported/player jump 48x48.png-1ccba0c36041038682bf917e1f6cf991.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/graphics/player/jump/player jump 48x48.png" +dest_files=["res://.godot/imported/player jump 48x48.png-1ccba0c36041038682bf917e1f6cf991.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/januaryproject/assets/graphics/player/run/player run 48x48.png b/januaryproject/assets/graphics/player/run/player run 48x48.png new file mode 100644 index 0000000000000000000000000000000000000000..aca5b5560dba7381b8b06e68e76b1cadf80992cb GIT binary patch literal 3199 zcma)9^;^@A6Mt`Xi~$1$1SS$rKnI9~AWT9A7By5FhZ0gs*VyPV2z5#h>5vvhLVEb2 z6#<!2(lACda$o+0@AKSqcRyXe?w-3i<2wcrP7zK303e2FJyQSx;ZJl0cGeRv6!Z~y zB0%1z20B1lpXee0aH|{YT{jO%r)Jo=35*Dm86#Ys;=xqk3ar9RN+jBRXo#hx82$R( zc6N=iq=|l&?5}v^=crJW(Rd=esjX#vsg{thoOq$-gZRk!o0hWcs6dpFz8Du<RIOeJ z^IneqnH8I0_hH+7sD^)t(_G(5X=AlFIXx?KG~@kWb*EKEruS+_Jr;kKJ^cS6W06xc zM8<T2!?7tbV;4H{S9E4E4ucxHBH()vw}y!EleIX6L{*-l)xJ3UC-!Uf2M=vNae}MU z?V_eG7No8(vnE)=LZ3y%7oz|77!7-R#8#F;f}v*OzTnk7Fw89QR@e{5Qog7es)T@m zPH|!Qm`&J!Fl3|nQ4VNS`zH5dm>|ptye9JS+HM=N^|Z-|@euWVtE3n8^*?bSqWe%{ z{V-W{aT4hZ2<_8CQ3D<Cuc@}T<&<R?Qtn0?kj6NaLF}rr=#?o6SmKxRmC=ZAKv@4v z>)(XS!5(_Hx+b5)1WD<~>ZdI)J-m~pd!=O9z#Dri_@&m0->;X0VOz8_M}@&=jH)9< zAoz>Fo1E=(9R&E|=bX@VK^*3Pxe2L*kRzQlt^{A9zE3xzP=68{-nyZ;y|ZUO%pUMO zUq#k?8kDW@PAtJg-zJIO*oU&sZh1Oea3ACC|9#T60)Xq}{$wfq_?%Q&k=+tgP#R%4 z^xF+PCsE+659=(^cAeReHaZ-FJ#>KrlmD{pD&fV?;h8Pu3b-o^yz+8YREOxKm~&76 zw#s?o#PUS*W*n7E^v*t#=@k6!RzF80d~Fh{i@aF*f;So1@yqN)i#$GL?h&$lc2uec zvUaYECHH6A+h(bD^ozxcoJ87u0WjF14%}@?{<2mnkvkIPAt!k_gJwHcRg8MyqxpFL zZ5g8|R76U!u&QNVZy6(w?v<J}z1}w3A22w`Pr1*^HOt;IvFrM7d@lDlPqCDu{dXc_ z(M}Jc^Rx)M--s<xOzs1DnGectF(uem?So77q^r8VF2(LHrs&ef{6BUPlS{!t*&kY} znbOA!-b^bKs?z&JWkSS5b+J09BeVgZ9ew1%Mp{!wsEhW_a;J7~R^DFlod;L_pXD-@ z*C_w)hcu6Dj}SuE+Zj=Dw-4Ux==cVurMwkp2ZEY_-t6+r9z`E8dC4F3Pd!+nYW7ZM zPnaDj%gbK^7i)6r2zcCdlazUuBA*~{+>Dx%ISY_Zns3yDkWOMh2LG7EmIT~7u@)pP z`}?XzT!6kP+l^f|4-)t1Gz+JlKd1u5UG?O?x_t>!!M1R_gWpCKOBjG|f3nqXbtQxa z22}Jl)gU1*J=|q;FKGO!3unq(3#yS20gnjdsT>5>@ezMiv#0$_R+>Y}9wR@1`y|I0 z_^Se^EuxCDrB*$^(Nk!%fEU*7+6l0TSG`=bqEnY-cS=^_W7=$y+EU)6Dms;8sQKR7 z_j4tx7Nu-JCoJH89IA7*+JE!}Y(BsoZ|0^BCd%eK4}^u9;KpLMxz8M|rY=2}T`#5J z9WQ5MQf^c^r5?WiK32EIVvnh7B6uqmXW_uv{UoV147VqPm!@vkCQ2!@mNo>~x_~QU z=bIOBAy4TL1M+N7U+=PKLxV$90XO&0)3`zDX{e1R_$uHymsK^l%^?Kpx<c2q8OoD$ z=QiKyhU^3!zYiVPl&`-y;-QNLpSLVel~YxFs2zJx$>MVvc+J1M-mRu-TNZyvQz#z6 zRQ=V~D8teeyA}UH4Z%EbqT`t}HPfnUI>tEdr-Xfi*Y^gUgd2vv)8a}5Fj%P!-ACMA zed@cup{b8=TlQ2OMQ`FCnQlBHc_&!7CqP;{@|6P5c&5_o=w#%!JvkU2jeQN<Jof~% z?B&)y0cuXy0;T`*Zb$|J3DuU}^EvG&HEdM@C0c7(3Cc9qE|$LZQ6a<LnGyuLmT@wd zU&&alowk29pY`TvZn$~1YvWam-U%f@=;+C-p_n8ep6^LK)~tz#UT1*3{LI@`>UFp( zb*HRLEY}Ztd$8!hlnX!N#A3fMmZVVDKf-Pr+8>&pjC*Inw?V>2x#Dj3iE~j*A?T)) zuW0CKFO7o0M8&Ty!Z~D1#}SdsSGJwgDil8%mtYL3@Nci7#d|nXpHKGl{6@08WT0(` zD~wXPjMxg>z9gnG>TqYivKA+ueEm0E%=QOzYoTFo&-^wp!s9;p?P{IPS6YV+Ev>wb zo|Kd^gN}JLN@*;DM~I1aDUT0<&f@6qb`xgz(jKN+MOW6Y2Jt@Lzp)S-v=Y!d;#9Nr zz#`|-Kn+gQ=YY@vt^CJv@2KDASk<aQgFv79Jot6fTKM8-G^2Q^$wnSu!%=Og02oW% zpVsNt|G7#GN_LwM4r?1g5j%*EOVP_cZDl!o3@0Vwoxa)b7U3mWJvIH$d9!Isa_x1) z@ZSTd)0Y03-o8METK4N$wLd#y9_i0kf}f5YJbsgl1_P04H0v(JIXt+z_Ty&&A0>?H znC!QsZxblcvqMsos)SFgn&fEKuk>Y7??w~_tKOtqJ7bUtDipA0{DltS=<u?2gW&=~ z2>8pvB*<0y#nHmpCzQK<WdCHpB6h%tlI>`QvTd1&=D|b!d=S#-cuqGVQb&--!oWM( zjNy0nj(AP{saE#%>~o`#QMdk3rCALQ(k(OHdCHhP4a&m<_OcB_Qes%Y`Y3V~qIUCf znaqcGxMWoY?+uaySqE&Ass3=yW}AQ8Zk^i(F@)&?FTd+-8<NCLclZ2L#0XlnHTsj) z_-6b~-s-HSiKiZzWc*aj5Zky5#t;zwJZXmr7~@AhxB=_{W5#x`qJwC8iTZTD1q7<% zuc+@YXAxIr$fr~p57i6y8cajNEWqkMV?P49zTb_csFo->t^W3OuyzVQ6b?HST6{0u zt-NFu?p!&_3G{1C@@s%*QiQnS#3$d%`S84ly*w3(u4K9+tn>UuidcXe$yypjl#RXT zAu;;zzr9+O9!I6ZU&=9!b=rLjJO7E8H<-=Rt$*%6ZJzt5Q`~56hL{V?x^*`vyJ>v8 zd30Sbd)eLYhltO?{XW&S@1(lQ!R<+Kj*#FdT0Ea~yB;a>2p9fM{`*)0U(>}xDSKq5 z)8*au-nEiU!Z+V}^|>oXweHC7pD3{>T_f$MIJGV)_-VGJ;8)b7BbjGPzW;t6z36i- zE!9tJOeasOndQ*=p-%Z5b0_*^zKK0*;Gz>mF`jBsrh-uGabKpX>i2W8J;+m69*F8a z6C*aprH~}3p{E-0${^A7#sRRl&1Sdcd3;RSahG^t_Abg?!*tPs`;|IFrm`Pr*{5ai z!VtL_;cn$QHB5DX$)r!I+j*fSF*ZN&^BL^j1oK%c0ExR0x?+;xMwC8y#x^%Mueh_2 zl-vy+8MYzo6x);!DmlA|r>MN-94(Ms)e1Ok@tCFH7q>Q3&A{o>8$apnoqxI_!m<~m zhBM~>@C#2^xQb4=Jh!zDyG0IFNCqYfO1u~yeJ3L&IochrJz{Ca*vQhh<NShKp1u%j z^@k75HRk8#Wqg&B9af$zy~8Gc^P~?<wam5YQj;YT(x5hhCQ1iVVT;rKxc5brdA+jY zQ-*oru}vBLF3?0PLg#N)oa_M7afauUYUTygn!2f&SxaUr`I)fDLaSUFE$2q}{jj>? zW_}Av(1LbjYB?MEeA+18F~xKjp{7IyqhxK!(PWi_+6Ti#9v&Xn4`POH4n;m<ri)i| zA20R1=&<(ueBZbfs;}YZ2}q)XSaE!9UU{%)yK$SE6)q#8j>+Lk%<^#MQn9S^(1@J3 zZlg7tAI}f^1;J3o8h5cn!?`9lkF+or9Q7+-Si%q$0;61#wf7&QFSxyF|M3Bf8SF-} zw7q~81r8G9)Xj-*W}uk0`7EuDyIKrQ0c>mMzy~8L%+QgGNkGQ51&&xQtXbH6{qI$4 zxACe8b3>AO+8KdFPP?c<n2ErDF4{VJm*{M9gS%~v2!#$_0zS`m8>!Qx9gYw!{6GrS z==WVi3O>3E@SB%Kn^*OE3k&fXn!6bYx=$O!|Bp+2x^9*+7ox)Z{G!>$$wvVg>fg~T I)3Fc#A5dKsJ^%m! literal 0 HcmV?d00001 diff --git a/januaryproject/assets/graphics/player/run/player run 48x48.png.import b/januaryproject/assets/graphics/player/run/player run 48x48.png.import new file mode 100644 index 0000000..8bedd36 --- /dev/null +++ b/januaryproject/assets/graphics/player/run/player run 48x48.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://lum1fe47ggoy" +path="res://.godot/imported/player run 48x48.png-6d66612d48bfa4c8721495ba557ab7c6.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/graphics/player/run/player run 48x48.png" +dest_files=["res://.godot/imported/player run 48x48.png-6d66612d48bfa4c8721495ba557ab7c6.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/januaryproject/assets/graphics/projectiles/pixel_bullet.png b/januaryproject/assets/graphics/projectiles/pixel_bullet.png new file mode 100644 index 0000000000000000000000000000000000000000..900d030a8645ee217d7bdefb51fb303033b44488 GIT binary patch literal 3870 zcmeAS@N?(olHy`uVBq!ia0y~yU|a{p4jgPikte%nWH2!BJ@s^P45^5Fd*|R<HFw6= zi|Hq$UHDWOEhlJjRycA@X5rkRz_`Tmo<d~u$-C?1R_`z8kN)@T`L&&`>z>(~*w_5v zXJlgG5a8haBXCMf3(Wpu5F^J3Vl83e316j`$SI)UaG;=)8K_KQf{;PX%3Uq04h;;9 zhoABSWf~m34iqeXB{YozsD)>`IY@>{lkxD>Ro)RGlMQ0-fn-Jv8x6D3q%mZ((;cB7 z*X`^7RJ}fsU;E?y|G#VfYgYaLr(gej$Cv#(_3dk8ivGR6zrObVa;K7+m5tv2m1l)B zeW+(VT>4Fd=laa~ms#q>fCa%pU7$$!>)HI$>x}J}b4uvtKiJmraF_45ZsxYvXU=Cb zwVjsUp_{NHZ?fb%W25DqHOdd%Tjh>|b)D|#I=^F%+K1IZMTd8&0u>bk73o1ti8)X( zSMrxE*rq>yFhhRIUYDGCnFS<ZA#4znUia@<>9gl1jP;MDDwzHG&+h;K+2GdvZU3J3 zw12hxb6V2B``5mvhX2KG3zs(cw7q7~FSt^`>Lv8Ckn!+Wi<i6iT`1VQx_|j)iFM0e zYvUac6o^Jyoyge1_kqcsH++GLpuD(2O#kG4ueo`z@BUR`)%&n2>dJRfU>Qme<K#cL z#{c{H_`3Zw|6k|oyXq|;bKEG9{b(s8Y7ler5l{G*9qq}|>)IV_W1S8ZsAl~#Tk^0= z?0Z4Z;jacO)_ZeEtaI^g(~i1a-k-Z;pY=xj2dzwPuUnVKbUw+C37=y3Kb`0L^Y=G+ z_k&CePu#KSsIAQH0$ZL}uZ5V}v;!y0i@Ih1dbg4Hdb#>H_B{ay3ifW8qCN3X@9VBh z&;R#4{Pjn6_d<Emx>@E4JM4U?x{DjexYzKxv;OJTj+%qvj{WveUbCOuKj-7`(|>;e zD<iN{kPlV^EeKut>^V>PX7iQjS%3-a{%e2fb=Sj7L@prwy6%`+O!(4S^NnN9-dkb^ zj`#KUxjW+GF9tdsE<N(RAml)SYxi!c+Xb;xv+B+jm{w2z<pWGVKllFI^02Db)t!;| zy5Ri7fsBVmb>C&>94-xA_0#h3)i=JcjDe~5+4o<U+g^Vam1Q-->##d7kGB`Ri9ff) z$|Sz-*N>{Fg|UD4Y2SZp%%a8Aw))Z)?;@#no0Zn_^**#JF8fu?EwS$W-S>~T8^@$C zfn)`HZVA2j52gXL$I-86+j+rB8(6&-L?0-)tM>aS$SJ_246K9i0CU#%lRV(0zEAMO zVyFH`U|mn$Thn9wgnxtr6(!yQ*4x{602NKY4639H^b&TQ<N4bM&UAIhVTSzad);#; zlL;gMuGymxyx(!_ucv<lL!%|*Vbk!P+`<YD3xFAPRB$vvMiawmMi?y_MoUH7*9eXO a85tTR1D33RtP1S+GI+ZBxvX<aXaWGpp47eo literal 0 HcmV?d00001 diff --git a/januaryproject/assets/graphics/projectiles/pixel_bullet.png.import b/januaryproject/assets/graphics/projectiles/pixel_bullet.png.import new file mode 100644 index 0000000..02bf04c --- /dev/null +++ b/januaryproject/assets/graphics/projectiles/pixel_bullet.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://c4rwvfk7efpru" +path="res://.godot/imported/pixel_bullet.png-30d6d1e8b5e1332f8b2e2cee72a9e790.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/graphics/projectiles/pixel_bullet.png" +dest_files=["res://.godot/imported/pixel_bullet.png-30d6d1e8b5e1332f8b2e2cee72a9e790.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/januaryproject/assets/graphics/terrains/Terrain (32x32).png b/januaryproject/assets/graphics/terrains/Terrain (32x32).png new file mode 100644 index 0000000000000000000000000000000000000000..ddf1eaf58e63d04bfa806cd75eab977633dd771b GIT binary patch literal 11796 zcmY*<c|26#|NmIBuSEz+mV~TjEn~^PWJwg7vhTZ;ZOB$3WnY`@AzOB0Y>{13c0;zz zU~GdKX72Cm{rThj`)AyTxpVI8p7VOW&hz;^&)3FA+KhCU=pYaXqpr?fQwW6o3V8jI zh6?<=RXn)`{vq=-)mDd8j__<iAXgx|ch&Ac&)Ld_IzQHK=tyK^m-roR@>I>e@Ozi1 z{nx1}w{wN_!r%Vry?b>1<r_9DO0|pegDlUflK-$ie%jStNl_M0FV9SyKc&{y>*{Xb zr_ba4Mku;LC-0+0h?2$nNG|*ct9UemkEq7Ev@83K4CN}yf}c}G%qo<S@YiNo-k0NC z)JUQ<6=Y|#1lt@(4uM!mNIrW6n66+SdAhh`-QW7GRS_(Ren~B)=2ZlQlZy`#LiAZm z96dZ-9G}ZMA_FfV5b)CaK0$^-5eP=W17Af-$)64L7)V;NIR3cBG|TLveWU_ZzF(jH zFyFI}Swj*hhac=ScUHjZv`M8HgcYeqES-b-Uf50M^^tqk7X@!g3=em<jUw$DRh!YU zq|+R{Uv~v?4@r!*0H%z}cKRpzoT$FUm7s1{9BdZv0f#>UqelS$%m_4q=r@Q+P^x-- z*`6;el9l8E%wxTM(NVIzd;ZJNX8+2%no(X`QUGkIc%y|>)L*r;gI<kjwE5+74Sba^ z4VYkH_N6kwDfkzm3^xKllYM4m9Xm&I5#dDb)@ZeJKQlLguLswr;C0*v+(Fx8`{{b< zJ+XP#eUf>!N*|8YNE=9!_Qrs}_B2gLxrXN`Ls^R`4LAgJQtL|BMh(H6zxFgBMMqa$ z;dA)(2rFO?@0Xl(dXA#!f$`k6fMHid_YDshj}6lS*wxa(D*t<biEe+I+mDbpn)VZ; z|GWLm>GG^{wp{?#o8pT4iGA!P7hF|gLW9ubCfsN)RKBzy`gT1$qt;5WHc4WHeH`yN z*l<uYYA6KPefkL;Q;PM3WL{XYekcT7nIo)^AhLT_`49@Yg{5fONyuVTwZg}Y1i_Od znv#0Q!o;BMZ_NjL9382HaUr-W5y;X}m2l^?d6_vp_0n%>AZboe9GC*XjMb+f+`)_@ zJK`Gey}ACD?u9R!auazHdN93zM*;sMBu(&IhCt|qpN9)|763kI@!RaR&2=g7Ur0f` z;{JM!6#ze3cZyv&s=86Vza<LQCe0p^<Xwo=C#bajdp5w_-g=I)k8qCKC0Zg!$5Zp> zab@uvStAUZmwZVaBi4~WoluQwuahg$u(DG+=8>bS$PmS)5x)OoEEETh4@cIfdVdGW zU9nd1+j@Q_sNF(bux9L#Z>#I4*N4lJ8<yjU9Hpm?Xj>I-OOoO|UEUxeT?BcRhCr&X zxov>xui5L&h0}Nv{nkefU+yK6MWyHYG~e-arWJ>cui{@`h~J&>s*U{sjR?kbZ`6@! z&#z40;3VDPgcRh~{V?$jY=3)dHi@hUwxoaw+~^JX#rEniEf0>Dv*#zPYwEWjjC@lp zf0+~ccD1#gY=H3f@*1+Pnn8BIwt2L;_}bE8MRx2QBgCbabaDmR6?sH->o#8efcIJV z>ZpKkpEm2-kao|i2zk6GmXY;A{M5%W>|)x*w0%BPG9ISvdYU`k>F{j)gQ1_dj`i|> z5VT)O6b)9<tl%H-^Ez;kZkmxC7XMpLLHKr4ed&ho@lt2vlGlrTJ?q*(o5Ag?CmBvn z?c9-Kz*LCX3bLl234&L%MnkO2Nvv@asLghXl>(7B`Gtlf5NT?}kHv>cV~ad8;#vOf zHC${G>m^kCx15Ma*oFQI!Mlum3^yND3f%E>ui$uKQaFI3<b3?Ou-_Pil=Q_F<v6@f zE%(}U0(00Myy295?Ak{TDaG8(Uh0uUFI3Az9kEWJ(;U#r#@)~)6@Sna2r2U?U)Z;N z^s<#HW`)wah$OUu`b9!FU@CQNfY229pHGlzqs2H$BsnBJ5Fi8|PCGxb*-m67@A!h% zY~=a-jN+EjHmdFCi)QyGG*Z_+?274%SKJp_)|=$oOJm=#haQf}N}=VF7AF|DsSq>) z8+SUbW-nImcD90+64<S<JIOy2Tylszi+x?_zKH|Dklj^_d`Gw?P{(+7Ir5A(ZjjbI z>(tN~7Y%!8Gw6Q+mI@o`ZLTqlI`aNsjaV;%2@=c3o~|S!uJ{0@jlU*EM}7r4qb8k8 z!wzj=zsmEfh|AxRxGcvVCU@%&EtZ7C_C7!s_M>h}E~wOusMtP0I<7g<>sPz_AH*r) zMiVNC%`5Nqz*w_Sn+v8qA~hbys@>i)RUWbP#;LaOua^PxtyN;_p>}R}PTKwP*<FWw z6g-p24XbG0uI1S5g}23$k*esF3b?2GR+ZP5L;&$fm*g|a=ZR`@xup^!`{d_eoq3vv zk1V%6C|^~O20w?1-w=12l|Kj$eUH4cu-P61=1@87A4~{Ajz;8}H5gJkkuhNcCutbw z#<@M-<y_jf>8mUOjG@eWFTSL^639|%1<=@RYrqp{8$BIc-igAk#-4c-d(9!<UYbw) zR0T#%;fVyJOu~BaZxX=>O-L6<$}(_#oM$nJhEmdX@Woj5LDZ@{^_eubMI~owrw-Jd zgqo~p4wb*#P;2<zJ$zaY*Cnhw!)?I*OlSbh&~1*ki-V{YDv+m^!d)$oA2Yc60N@ge zSKQbB)F5q<;@(mlpd#GTGIh@ujmXY8oU|~VMB3wPML1>2dmAX(lp#ei9#3|-`0TA- z5@i~u2qpTFkR=5_tJxa&!RkR2`xNa|*x7QY-L;uDlLJI=sS_frNX@TZ;Gx$7i2A9} zeX>q({T_x^ad0U0=?Jxfg>2nVB(R!Bx_Sm|FY##z)v2p79%teoW@N%5PXe(k{=UTC zU!O1J^F|RY`b+ePUhsx#-RY2?I;2Wn+XN0w9Y3Q_?L`PBim`XQj0|$2dY8jPabAzh zIM7iB$nzl$_IS*q?A?vD`=9w8vvYN}j#Jk#2=2+nSfsvNTqy=wwU<Z{pBAdl-}w9k z#nlQj-@QLu$(z@rdW1$Y2z@BK)q~YrcMWngkUvue342~3N-&ANkCrVsh%Lj78XBC? z_X|gWaaiE{Ame*?u}Nb>UZ$sfGi89vcT~Wv{GA^r)YjN5fxLykkD9<)y^rPxXCfJj zId!K_X1IRQ`s!S2;!P8vxQ2EA4((pa_-@N$CB-i!8gbzlRC1y9iTV-zpi^3xJjpAv z!VGxT4CwHRli3fV<Unj94T0RAosHD@^P5J>xw~wKl5CtDRv|cwcg3f33^qXCk=IGp zSEGzl40JupRZIQ&Z=_ukWk_SE9=*m5GeCGk@r7fU+&%|7`P6V9gc;qnZOh!5yTF0$ z1=-<iF!<bw(f8QWxQUf@$M1xyJyL)nnt+f(vIWz;i8<G+5%A_(q+Zbgzk;KcRHG+B z5T1M%jfEsL2$JUTUFB)S{{fP_hl++`rM2#7-zB9XviUL4L*lYv0C8QSK#V)jSeRh< zX))TbA#UAW=Ph}uncU395G%Q)Rj*4kolC%m6Nr;KNCorO>vqLlN~MFN!|!l>`y`*_ z7Sc7yX=E3;%`L6n4lv?n-3x_O!*s5Buy~$r9B>X0kC1`r=x#ue!#LCXiPd$-R|IUb zL8z#kxJ2g5z|JWiHoM#lW*w_1sy-XKF98h>oa952+%&w7{u(rk8glY^ZA1PZ{YK0b zK1#<X%rmA8m^w<#PQgKaHX@nHATMj@@@$MJDEU#bV-Ei5D#t7zhzFsV)%d&w@HwZZ zoCAAq=BDWgZg4G2H{c<ECW2#OA^6mN|2nYfsqXcQW2mJCt=pNU(|;J|1SQ^~;_3Fr zOdu25zoX<%5}#EdoNBA${CqZIK-}dg>rISH7xN)1cYANhw0c!bOO{e_KGX5c{LVK) z%lk@*H`2|th*ZAv{!$a$>%p?(T{UHXx0bx*7BCsCfrTTlSU{#F1;@wG&1f^5JuVdB zFrw0r*?exULx5N}kOptltG1td)Bw&LA5^aL@dPMcD>3RIwW4ZA={Bg0zyOlpkZiDg z@?bhSg*WA22#I|6LSMAQdz6wkH}ucUvnKeFQNt}<cO>7p578!Pk?@<7Dm!<SPvtSM z&I<(Kn{~|r$73;$>liqX*D`&yE#YHhA=9s8Rcqgtc;<t^k4paYDuZelaIiz=q!lci z5+=w~@yV+&Vf&ch*U#2{496D)H0c@x({!(5Cgc*E=bxZ0O*vh;!T%Qv;;mu{!8~mt zHw|vAe|FGS_6KJ^yAy-jCF$~;6P>7DEyP&y{ao+7srpy6f8wC<Q>*dJXZU2O6!<KL z0*&2gFEutoZWl^G<@+~a83tf;`0dg3hA$l%DX2XpgY$~9?5m?s-+j;Hpp?x2?6$+d zjQ9ko^iPz0>HYJrlqE+0Xzka|tG;I|3LW2Rq?r$rlpxu-dukf_dQAb&4mu`mn!3zR zZ1G!6EO#3nH;?_*6E2i8WwiS)iE2%IyS344xsY$yMmL?|!?5ks6Lr*qeOtVzo!fj6 zHBG*i>}t)1-Wx!}fRcexNXwQxs4TEkWYzMKWef~XDjKVlI%wM(Nd>WZ)9U&N5<BrL zSs(B?|26*Yhqt9X%SyfrJno@RkvdoI11X|ZCH{DJuEi67!sZFYdoCg?7GS*f-!I|L zDYw+E2~~uzmUJdk4O{GOuOt$;iWDx}?;B;e*QyC>M%2~J|GtK2S8+xy&;D_9bNp>j z3e73<8yw9AjHQ?d;)MzUIg5|I8tLyh!rF4d=!A|Un<SoS6e>Q6LBk!x8h+4Ifpp|M z8H#tNe+g*iypLYHr|g<s6zyR7(8li);rwD6LK)y+9JeqhHnx%9GJ@wtYH*j>F`b(o z+&Nwn{yH6MGxg|s?TONnKxSEQCy21W@FlB&3@02r1n%d*1Is;@3ldH@TEnSsH^5yY zuQZ;{;h7n;cgc)xfXa0_wIvy)@a0yhsho`Z6f9-us1Oxx`ddfDPmM1;1kZlCDfDI5 zcc>%n>F~B&Q`oZT=g*Zjg9b}yQQa3QhflazC5O+^(b()d`%d36x2DROXf-ZN>37dK zIBEx@h#c&(Cf=Jr_0V5DxTCskg?=FTFM#(g1TVjHzMBK9-!xzjKf8YVw<yVU1uA>e z&@yG@5vZN3DvQ34+E5uaVZzY}3C3kT>vW>QEPgro8Hfy;LNUUS!XkL~X$rXI$juQN zSsA)Dhmxht4&}5$W|=E#SXM~$%HCjaTAIFxYJAko;?U(iIK}}k^^_7aZ^g^gML*}O z&)GV?bI}6=gl8qbh;Uj5`P_*3kt{X%Ax81O^(=E<Cr7vOHKVpZm6Nv>aBh(4Oef-B zz(9Wc@S#m4h;u;1Z7-`bGlDvNs}pgSsb(K5Ngl~t!rya@hbj7oei{vfF~Nwc186n$ zg54*Qp)-ZJpG@Wbvy{mOr_*(f@9wM_cWspnzK=yzU<>NB=JeDtjIjYaD{eK{yP*fj z;jyT;<gcXc{5PjH1bN<&>>z4C6DfX-Y<*F=Qj`Dn7Z3^MlaADC6T1)52^BlFf`e7x zJ8vB?VLk4JqZz`EmDAoY#72olj-w)laWGBN1P+!~yxO>dObGPk>EKQMNTt266HoeN z3e-u1RC;%{NaQ=nnK%Pp$$BMH?Pxy=cn@dDlldcCG#@jcO0wB2sRW8YiNehYRRf&i zTI6+V2KKa#)N<om#3OL@+4d+U$YMEl3bOokSSM=Y0GkA|Vu=>dqd9_nzf5B;lg0XF z79obfW$h+3?9J($d=b4PgC}g15H`=Y8_U)iGAipl8;zX}Ho*9*1)HYH^Y4mzS?^io z-1RZnxkb!J$lnKXyZ^+Y<nip9CMnw@bLW=hqCQg48K&>$+2`#DnjyxqYA!9L6Jcb& z$eVFSMG8T-JXNRKAkJxNhj_{U^qK$@AnD)GEd>)cQjmg&)r!Z3Ed*8#oyIvU7LQ3J z*by{M*e>5>NN2qsDH%vp2o98VdHQ1f4TcM<8a|lC)(e`C*mSsYD6sayAUwJDqn}=N zjY{d0KmMcZZ_3o=Qb0PndiMOTZUv&lEA0tAjW2IoMY8Sx7c_f}e&?83fNFr<&!Pje zrhZKIiO7H9HnYE*itGB@%(13secg9ys9wD;)@@LI&%xa=ts-$x44kj|_nMtOF}7J$ z+Gw#W|Kq@;VU5uhE$`09Jd$IZq(bNY?@qJp42>0A=_;O>Cz<yUp-{h;_=KHzGRMCe zyBWEjN)&#t0=b)iqCCSSJ8>)~LX~>&r&D$-q{^d!D$zDjGXydvpbpYd&G~3`3?F9R z{X)BQ##tAW?Q&e3^wqNDTRB^z76+bgDUXo|1!u53bPk}i0u|c~%Ltjq1;Y0a>76Ri z?fVdkAn!kGSP(V~sC8r&+Ymupp!>HlNM0&}?k<lwM(L)*z-?hE&zoB!;C$Wi%k+x_ z6-E<npO~nLa*|);9){AUE}xC@$8#>)-IRK<bfaJWp<RLP<FBFQJ1mQmaF{sf)6n;4 zgKRLZJNOsxvbG4}CK2%K3_~`Y%r!r*8JcQ+NT|T6a}{a59P^!T5BS+Kv-GoSm<E&l zFAW0?AZ*l>H&wig(cDtr-du|O4NlI-dsH6>fj%+L3F*3R{KdbRCDGVXvR}8H^>^V? z7!HeO+l1!!!GF^@+SBO;kM{t%YyOqLGI$)fMXlN!CgCRaJ;$SfRm?PNdQCV5{PR;; zStvcXmFhrC$U$bXRKl(M?hevUM<A{Itu_^O6L0e*u<P~!(wEHu^<M#SQbQDuw-Tix zG)h@5R6abG1_EU8MCr>r(+xUtO68*5R+!G}De%pPc4&qPHV%0)al>9(Uj&3Nk%1V? ze9hbX_eRs`f2kwO1d;MVx2X#bZCT0J0wC?t#&pC}oPb-!NJMk|t~apF+n|rNWk_Z5 zdIswTDXoFwy+<0BtS*s~ZSN|XLR0@u@P{rNse(-Ock1v<{E$PM44KGh?6D>UUJC+7 zzLH#(BxiB@*d|gq1sd?B#}~3f{m>vXvig85qmn9*f2nMpf8cDw>P9I$oaxujB#w49 z<!6cu4)$XX&v{;{^S2#~XGdPQWeS?0$?Hw2a$iGPJ3LFByttu;P?m*eGcJOy_)orS zL!ev*?w*BoNWiba{|c-Bf$AsOGB+uo`F&P9`(q=zfIEYfyavM}j4kB0BNH2ef1L!< zYCHWvv|l#lf2G(#Zt&&P&j(WS;iq~p1*r|t@vh43lfCc$m)3KqPaFamD^X2B{)LC` za-g_ot<=P3Av&Ojggq-d*Z2lx#hKX-eJSUD-oM^x820F5PkdQtge7`Wzq^XnpMmKY z!1CWvPyc}XkQ35cu|9)Qr773sD~F(`W`XF<c)6%%kMUKLU56ET?a3vu9D<il#=usp z8wR$ZB5q%!Pk-sdSy=;^vFMk}?3dPFhR^p=LNVQoR*j?+iGMwVH~L0~K<va^r(NYB z+8SK1wHysQz;T(7P(Je2W|TIxWOIKYCDYSpnnxbgQLYD_EPbabwFW}}Roq65I_GvR zqMiDf_H&6{R(k4ECiBg*&VZM$f4v%vAHkyNNyE4o)5xdO11ZzONW8rNSWiR~b7U39 ze<Fh*5B%2tH}!|tKZjpAlPAxl<ruN6kVT#hR#fJdn!u=I$C=9Y<@NUN@emaKoynMr zoagyvc=?ItvvRQ^ENXm&nociF^K>Jo2z*KZO0o61Q-ObYh63)foPf$%?h}+dc83l@ zw9qxAcp$&;H|x~CKK8I4<JG=yj(_YPbbD>#TmX3*L#mkOzi=FXta=N*sI-23yDm4> zwl&>ZM`wzumh1RBe-V?ZI{=Y6V1Bm{93CWj94?}#Hx}&u=^l&fuAoga*sdIaD!-?; zvr{AAN`tW`W+8jHz7gb||M=ws7CJji0SO1Grpd<Om?mi!KL6ReUD&ymXh+QV9QZ48 zjz|%Y?l`>6&_aZ(w9wi_;YviTGdOlLbF1Ah>L|nR=Cl53eQl|Jcf15e5-80?^fw|% z^5vvici>EAms8c%d`bFG6fdd2=<VXk1k%~u%5V`np~KB&4ll%k<GHAT`@)p%^pD$a zhZ6&l-TkE(rkxy}PSLAm5LK!Fqj`HM!*y>?lMq{54l-pV;@FqMG13pI0Ig0DJ=c^r zK`hu$r<pmxVroXPj7yNu!RxI4ejbWgn#0q2DajHM=_E>!d_}rwjBZ^8N17*<el7!^ zo4NoHG)2D1!drPb1Ci$X$cr_Z<G+xm`W$%d)*Esctylfc`xiikUClfEmEq)rnT9=V zmc$Ga4ZZA%Zykb#s-~>$zWCV6b0EmcUre@_j+9Ij<!A(`J8HJiUL11x77en^TEI@} z&2%Y#JodwE04WLGp*4S4ML3F7xuWB`1#4IQB*M#*wW|A-qkk?|esHsu{gED9yzX=; zzSyY&RM+{7h$Y3qR_<_(7$lRm>jr!hU(Wn0=_cp7MWu-Jg*XjqYJyA{r=j}Ml3haL zneh2%u*yE?j<*k6gVQ#bz_j~7(ulHE`R<(2zEklQ_~=A|Z->aXTE$|jSNS|@%1^%< zFhhKgrpJOkAX>88ejgj7MdZGn0dT}w@8oc-yy_*?u0ZYWBZ2u`ts$#iyNMFWsl9ck zhAZxKs9SBpaM-mo06bygyTvy_eOH%fpC@X}eU#GT(q-rnpYw#4y}_?q?Z2N>VwUt2 zs8_sz(@k&iXrqtsw){wf0=mb@C^uYue*cct(J<LtB{^*Zd4oR#-V1dCd&WnZ28K)> z{+^V6F>MLl25T_xAGd(6Ot+msTNmbEny~e-GcL|P=%hau@rYi{8odRFfdne`SA7>V zud1L{M^28C3C%7=xV4iOaL#+E%zA@Y)+Xz%Ed09vJjon*L3bfOq5%NQrE{YeOA!tx zsGc0XPbcrz`N+Zb$PYoT15Gvc61L|k0k2s}xwgMH!2^{C?bx2%ty`x67D<Y2V_tIw z$^ce>c1kq?Pn|8qCCif0c4lxla}5`HL*q1*b^O+vnv?5_@LVsL8f1SkQ`KgJ<BRbF z4Rs87qv{>&<<@AYz#L?h(xN*!P&J7=6?(AAv_IMUgza365BDbzDmOx~v4DeXkZBaN z&PL~`wb3*GmkIF3qSIy^bH^A-a>V@Sov`$zEK;^>H!m7>OR*&sQ%ndKaapF<D0~kI z?Wr%3lsQjDt0_FjRONc@5%u;dck%uq_SL6X!U4p|RHPj-_JQNci=eptx{iqhd(W}$ zK{RzZ@q0k{dsf@aB0|3*dAS8uesO<~#|GPX+B)`p*vyf$_enQ?xSV)B1S)>R^)m>8 z=S5o0pAqI;mimPJ<y|%KVY-Ygnl(?JwKq7JK!EYOqgAg=<0iqY(&wolSsOe{Q`5tW zGy&1W@6Idi@aNV6Oe-8_fRHq5P?YMU#j`>O-i-3gpyuv#2;Dq^z3F;=gZv4|onKH> z*<zwJCX-`#K2VR5n;s&w!-}~^ILk-1aQ7Im--{gu^-_1h0S(J1k(I&7E$g=^ZWh3Q z9)C1>E_~M7TgdYThfSzgcqmJXujS@eCw>v*pQ26pv)qje*c#5}O%c0ofwqw{e6sNV zf`$%|YSBPB+C)b92`Va8dPKjaapW+Br>$@Bu|Q$jrXd>ffnKB0${7|#OjODfrBi+8 zobK_YPhfZ>F`-PBIw<GX9r}*wipb1N#0`ZC{0J4RABTbd6Pun1T^+#xp>o!G@Sg<c zH!FuQ&9j)vC5RTglcHk5$pra?0=~<qmX^ei#6&PJbu|+68-@=C2>Oc*J<s$?U5MF3 zL!(-f5m~(FRD!|t61j#s)CElV4Eg;;a~vu?)8D+X5l|vXS^+#!2h7G>!nQ`l*$2*2 z@LJ#pJBy}b*X^dkNqkJ2+I5BU&bK{tv)`DOcDsi~mb=r|cDoHhHr_JU+%seyYh*^i z4!XC9j?co)iLra>FFkz6qPm-I63wP^$JnATOgdN_#$3r7ESvPQjy^k~z{pCcBWNxg z{~nC|E^2H6cxcJ#jv)^YVHQC9sSuhk0PAaXgFc;PN8qy|Gf5Hn>t4`Lk>OktA&GDk z>uKbGU4soUGl!*cznLWuz(EgEneV!uRFwlVc)ynf?P>Xj-}F%P#c{X+P#|_iZ#<>> zRa|ko?1kpA<+5Ai2@(l^d>t~YTfgw0JKALaI2)`pGX}S5!hFPTAw5Y+IF$eF@^9qp zg>wZWEb=t@7uee~9R94PUp&q8gB+&wb)d+mczUW0Drq?HcJ0Zk23kpZ{6*3dOsUV$ z!o}N9PYU6MpN*Ohu$ahd;D-pOkc&6-?*mnNX5#e=!fxH0lz*`x2%b)I&a7aSU4#BU z?vQE%)xpbpf5Tfp(h?`{IO|^xbp-+ru!D$XPGW&ic#Il5BEAv_4(JRNfL&R2w?k-u zjBj7z=`1~GklMzP_WHBWoy68a-;)|}if<^86Fyiq2qZNf&9ixIphDzGDr^Fjs?Sd3 z5eY~OuBhSDMv!>p;v050fZ=V7_}$;J{zMA46TVxjY^$$~Gh8#bSO_o2<NkO*V3DD8 z?~TP<^GQ66aSg94g7?(V+!PdSfET_6^}f*vePAuxlYf~RzWy6&c=-<XT@wat6Mly@ zXAQ9n$KpbClAEAmpzF*FurD_Q?o!fd7RQChR)OET?LYmHJPS^k#6a7>g$i*rC${dT ztHzVS)oc5rKM4(05qeF8Y3_D%y^c`fG)(7b(`v4%U*M+xDhvt+HH8nT=LmtTqy5G> zzBiRKAh6<YJ?M;u`~&`-3-tW&BT*zy3dr-rpGR|=WZ~P&PjvTS&0n88EAvXP9rmjv zKUx=K-B!|h2+Xx;n{LB}AzHnCpbBoSv*Yf?3?9<6tH}R^K&-Q}<Md!L{OfS+K9<Rc zW$kP)8^M5_zP*)Gz42b}=Ii{&Ch{u0)8lg|r>&-YQ`IjD^;?(=3<dwfWDeTAG{R^J z>2oB^0aV&Q4-SKJwj>0f2}0e;e8b(%`{=|Oq4c%2#f5cLjn$GhPEt24h|O1ohjll% zGvW-CWkx(;pD;6b=Y?#O>07?^^rMnc1NfV8z(ymmgGRnRJ%50TJ%kkl*Zpn>a}cV0 zFS7oE%b~vpy?7@iMJ;eT3rf06D-*O%N-G<^aNiAU7dwP<&nZSO{y&#MV$b8Li_7dJ zcQ47GHop!hqdt5xc+TcWr}G184?-_z!?5cFtl7yC4(hL3vSIz+$L23|f;nq1gV3ne zIo3%-Uk5lhN_~3r|05~hAd;!BIZ4za@#Je)>F0nML}F3&>fF6od0L%Qf7OA|5<`4F zF<s!kTuav3!MZ(EqQw<($hR}#sxX`KTfesWYcO*0ONe_*!#ESDRGKD3{kNJnt~~gr z_?gira}aUh%^&rFEL>+hYSvc7qn>`|9c&hvZ45*%KJ_mC!797sR|n7DCfnP)=v(bT zI>;`8c-!BA-$aCNe@Xd2CWL-?9rflMb)({|Z%VPZevv}PMqVxaQhOi5td;Gb2k?)j zoz9TDqX>M-G8g!0w@?-fXISg?e}F62occ{MeNGU`MxcV!OjF_8Lx`CuiYE;dEwa0_ zureY=ukLF!i#4s@t0&HOd6Ts;fAjc4vOD<aU<f{>d8F&@Q~7R0-m0M}G1OBOuTP_) zX`0H{HfB>Iu+SbL`&=*2i?5~Ta6Nn*+54>hIoEwUC)K(NVBzN%Fe+jc0g;KH7C~L) zu-<|`0G2P5EGXX<J5L`$@#f+8GZgka>AecNnPYu?5O!vM+53f*a=xYtI|WH}7xNeJ zbocp>p|*{gt<mRlq^PrgUhONe#fg@1HU%OJ9l-VJ`|)5}upVyK`_IGjqvjiW$oKyD zWV35eKzvp(`T@HdLgst!8R(;^ys@Ra-#2!BJ5;BVkS+*K=#~t=M)io0$hYS8i$N*o zTLV;mXj-6B=ITubqX9)4aW0E7IJY+jI755yG{Zaq2+Je@N!cg9%3nRiKB||-A?Ukr z+?Tp8_&-Agx2#iCv8+Z!OwK=p#liGZg~Ol1azeT&60^!Y@A72ii>;&^T>~_7EZPhN z`~Un0dAaFzG!UZ!H2jlyf7KTB-lT(D84;%7S23pD!XS)s@K>OJX3|T@m$mDuN7@(H z7scuROh4U#z(JurUxHG$yLD&PNH>hbLop)tS4Com8MQ|)Wg|)1hOAj3J$vZ|&a2Ra z-jfJyArKA(FB_5!K~fhs3sps)@cGHOq}>v<Xv^N=Nl2k{WPcOF{F4wRS=h-{zkF_Y z%`2pF|CILpC8%l>$t)ddXgdRAXcs6U)8eguO-VGHFNl~K2srX*ACaNCNCnfMkpmA3 zZ>l~@N5+%H#wHIzU<ah|z(W_6gTYWUNp=G9Uk3j|_MWP85|$Ya3z@{V1aNeAA(C3& z>w`;D;W?vqA&sC|$zksrbRH!1FGN;_c76re;B9gv?eS!f7$O9M%4c^?)tLh8E*EYf zp4pd-{%#E))X!`$i|A}LFDN6MNrN63cmM)Q7`SLWQbmewhJBZO5exJUOI=}`xp*ms zo)$gzP%Lt7_6e8mo$~S(FIknsMLG(<7<lxG{OKKa*$bW_PrU;)7C$RoeKXThUm~sx zNZ)Ns=l_8HcEsT@9`sSme0l4W;iV)b&WY-;#tAbH3VDbBa&sm|bRrsaCuH|fcP+}R zGAxP!(C#xAvv1r9FV%|-YG2<B$*n!-S8Q_?H7Dz`u)<a31Y=(*4oW#7HwJ}0`bOzT zKK)orc8tEr9Ee{lf4brzSJHPM)FdDB2D@MWBy0}I?acezH2n&A*fiMj+8!S}M)Dvg zHp_geGxiLqHg;+!eftSSEp&s-v?H$duwe-U_)*cYFRay37`K}>T%2M}qkSSxe%tDf z^b3v;{nfs9?L4M;YTVKXZLJTNB&Y-r_5|wFwDd1|InYGY3z*_y(U#bgmL{de%Dwes z=Dnjf;t2sUcB8q$j!lmXD?~uZ#5jKf5K>TxLc<r^OUYP<*IJH}AJ{LHjyYVjPWl3R zs7Q7NHS1};Vt5Iv@ch%JbF`4(?0HkIPegwtMTj>O&7+^W_YHo%K}bv)LMW{T1f;;z zZ&tvuFYexYKL@_u=m7drgXyAdMm3YxdlAOZ#)<^K{i)zu1{Lc2FaT<DD8nOb7fux& zxMWOsr*vG)o!YphfM%HH!GlCEC-I?ASn}2j_YH`4&6uInil@GJ-a&(`$|QssnJ2@l zZ!nCkT@l`rV3<^X#S3#s$@~)oE7)rMNd+yIDg^foF#%z79N#7VG9%lfMz{r_(RdwH zpt895*RBsi3XZ;g<!`*nN=)3cIY<a(vjCt>-tM$vpxLCE!aBrA@_+_C)7AZHiMWc5 zd+hayF3rO+?055hBj(q80g##vgTHi%v|D#QR+H<PU*o*WgJ&-nGG|K^D(90Q^S15i zI1##E8}=2Hf8RH%ZLei5oQsZF40e+B6*}g9!ZncQVCQBt^u!{zY_E^yl70yBb7FfP zd<J-+$V}<r&pYwkKDYV9DmONS2q>uTDon{VMU^1FiF8bo{o-$+a4slNjV%Fn+Z+cG zkDUNb^(C2)!-~^dpVfqQNn;MirblsbB0hbN`Mk`c(8j{q2~NHRogk-rPTdWphq#L% z`I{>>#96|XAkWtuI&q87_l}o}Ydu@sYuBDTkr;iH^0Ho+3dAcappe1T4<1Z@?V<<| zZ0@~Z=C;wBx}cegz5gQ3L-&o+{FonhV^LyPsCwxUReS{cT)@jMy|UAZF<-@}0yz{# z9?(M&&2RcY)Pr4pXWjF4@c6@ziZ5e_?l3SR>G9?9LNx~!L^D8Uf9IwZr9q~yAA9VQ zF)_ARIji?Ka1Ron7Jk-7oaHXLe(Rybo==kKexjz%uj!xda96smSsQ!uwu;>SjohHS zSk+dMcXSm0xZ|%%LgUg&w#SpZytY=LyXN9Gq%PMrcZp50w@cVFf04B|e`dxJYV*Ju z_C$$3eJi|qf4x{AZ$shoknbZ42(S$R?qDjNU%QRy<Jb+GReBtFHcS%`<AcB76qUd# zQ+LxnIPLYuViY6o4N+8J$mLnf?F^Y&(P8uJb@2)X#V*afQrGK9CY5I<oF7*j98|MU z>$*Q~bv7gk>xPAYeQGJU@c8OkN|>w><r(iPQOHw&$v8sDf)dN=jR9+K3}21nSBqOJ zgbA>Ms&qdA6-p#IX;O1<t1$qZdf6EYckQ>elalRI@4LjMat@M0?^Q@XJAzLngS{19 zZRqzBE7&^M3O{<=)X9;DgUTY;tf>zA?<vQFekDIbst6K$ac)eMOWyxmfBmI(bv@qu zFMy3JoZNUjTc)=>c>QoIKxbZ~(fuHgXr|DMD(;0^S<&Eta}<;o7mR7Y1wTd8a$gmW zAH3#mk&+5`dHQf}9Kl#i0zFv{D}7obKEN$GhWQ*J9R>FBx$S%hI!1C+0oj2lpDe1U zn=<t)r_D=A(6zCOcQqd1Im{L!_%xxYlmwptFFt0IX!VQbCP-0h(aM_6lCp=@v_;!N zPf&qG$e#X970BB=W5cy7L(ZRtHAb?#4w_%zQjuaX8F#QYS5s^rAuWPVOyQM8MgKu3 z_w0ju;*rZ~y-5+kCl6IHRo`B`0L#cv0OhImaLh?|0w}L5?LU5G*&ru}3RH)eTRGlN zBpbDtVk`jH?Ts}-!yR`|`4vlOD%76~1ri@RYJ1%?%jNVv22(~g4)cY{GAy#^w0T24 zOm>FJ#{)AHmZ;gXt=I>9yE}R*2BVxi9KU``a%?x+lR$E$U)_6QIXm7L)^{i`Zj~uB zyCM%bda~>CgcuGHO89$H^7{F*d~_@w;=T#RO)xc~Phe}jlCuc^OsM?$N@JUwL;TzJ zdN^I*@!%~I`vcW?XGG^zP5Z7zCkv|m(I(e!JC$v4FK9tHYER9OX&ygrcM}6`UM;ws z#50o8jnL-{p*heNZ6K7Syho^%*OP;WC2Hs+SiTAuPmNAI<YP)Gu(58Ag6rb_e%7Bl z0)LeJ%dZzU!V3p?8@F~xCjo6{nuDo-3~Qg$Dx_)a`Ro|VeN=RxN7ORa_e?t`fKS>% zAA|b*2}wMr3@7>P??)ZQq-I@prU+1svPH+75J9&rH|?H0k?F9M*f+Lz>~>;hwhYth b1DNH#Dz|$Kzczt3Z-}m@(cMb*ColgW2-TUV literal 0 HcmV?d00001 diff --git a/januaryproject/assets/graphics/terrains/Terrain (32x32).png.import b/januaryproject/assets/graphics/terrains/Terrain (32x32).png.import new file mode 100644 index 0000000..8e1673a --- /dev/null +++ b/januaryproject/assets/graphics/terrains/Terrain (32x32).png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dcx8qbotrbgpp" +path="res://.godot/imported/Terrain (32x32).png-7361ca574569f6e5ff16ef11d25a8904.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/graphics/terrains/Terrain (32x32).png" +dest_files=["res://.godot/imported/Terrain (32x32).png-7361ca574569f6e5ff16ef11d25a8904.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/januaryproject/project.godot b/januaryproject/project.godot index 3e030a8..e12a171 100644 --- a/januaryproject/project.godot +++ b/januaryproject/project.godot @@ -15,6 +15,14 @@ run/main_scene="res://scenes/game.tscn" config/features=PackedStringArray("4.3", "Forward Plus") config/icon="res://icon.svg" +[display] + +window/size/viewport_width=320 +window/size/viewport_height=180 +window/size/window_width_override=960 +window/size/window_height_override=540 +window/stretch/mode="viewport" + [file_customization] folder_colors={ diff --git a/januaryproject/scenes/bullet.tscn b/januaryproject/scenes/bullet.tscn index b9fad73..820761c 100644 --- a/januaryproject/scenes/bullet.tscn +++ b/januaryproject/scenes/bullet.tscn @@ -1,6 +1,7 @@ -[gd_scene load_steps=3 format=3 uid="uid://ckc5gbyie17tm"] +[gd_scene load_steps=4 format=3 uid="uid://ckc5gbyie17tm"] [ext_resource type="Script" path="res://scripts/bullet.gd" id="1_fxxmp"] +[ext_resource type="Texture2D" uid="uid://c4rwvfk7efpru" path="res://assets/graphics/projectiles/pixel_bullet.png" id="2_0y61d"] [sub_resource type="RectangleShape2D" id="RectangleShape2D_rws30"] size = Vector2(10, 4) @@ -12,4 +13,11 @@ script = ExtResource("1_fxxmp") shape = SubResource("RectangleShape2D_rws30") debug_color = Color(0.892283, 0.284139, 0.402358, 0.42) +[node name="Sprite2D" type="Sprite2D" parent="."] +texture_filter = 1 +position = Vector2(-3, -2) +rotation = 3.14089 +scale = Vector2(0.0794906, 0.0794906) +texture = ExtResource("2_0y61d") + [connection signal="body_entered" from="." to="." method="_on_body_entered"] diff --git a/januaryproject/scenes/crate.tscn b/januaryproject/scenes/crate.tscn index 4622fa3..7124af5 100644 --- a/januaryproject/scenes/crate.tscn +++ b/januaryproject/scenes/crate.tscn @@ -1,10 +1,18 @@ -[gd_scene load_steps=2 format=3 uid="uid://di3tq4f0xmdqc"] +[gd_scene load_steps=3 format=3 uid="uid://di3tq4f0xmdqc"] + +[ext_resource type="Texture2D" uid="uid://dh1d2qkxwg3vt" path="res://assets/graphics/destructables/crate.png" id="1_vh3j5"] [sub_resource type="RectangleShape2D" id="RectangleShape2D_jqoba"] [node name="RigidBody2D" type="RigidBody2D" groups=["destructable"]] metadata/_edit_group_ = true +[node name="Sprite2D" type="Sprite2D" parent="."] +texture_filter = 1 +position = Vector2(0, 2) +scale = Vector2(0.0719266, 0.0719266) +texture = ExtResource("1_vh3j5") + [node name="CollisionShape2D" type="CollisionShape2D" parent="."] shape = SubResource("RectangleShape2D_jqoba") debug_color = Color(0.801265, 0.412511, 0.212642, 0.42) diff --git a/januaryproject/scenes/game.tscn b/januaryproject/scenes/game.tscn index f149201..5b4959b 100644 --- a/januaryproject/scenes/game.tscn +++ b/januaryproject/scenes/game.tscn @@ -26,21 +26,6 @@ metadata/_edit_group_ = true [node name="CollisionShape2D" type="CollisionShape2D" parent="StaticBody2D"] shape = SubResource("RectangleShape2D_jk5qv") -[node name="RigidBody2D" parent="." instance=ExtResource("1_tfj4n")] -position = Vector2(291, 405) -rotation = 2.0228 - -[node name="RigidBody2D2" parent="." instance=ExtResource("1_tfj4n")] -position = Vector2(509, 216) - -[node name="RigidBody2D3" parent="." instance=ExtResource("1_tfj4n")] -position = Vector2(576, 241) -rotation = -1.0315 - -[node name="RigidBody2D4" parent="." instance=ExtResource("1_tfj4n")] -position = Vector2(540, 178) -rotation = 0.0531393 - [node name="floor" type="StaticBody2D" parent="."] [node name="CollisionShape2D" type="CollisionShape2D" parent="floor"] @@ -65,5 +50,22 @@ position = Vector2(178, 316) unique_name_in_owner = true script = ExtResource("6_1kka5") +[node name="crates" type="Node2D" parent="."] + +[node name="RigidBody2D" parent="crates" instance=ExtResource("1_tfj4n")] +position = Vector2(291, 405) +rotation = 2.0228 + +[node name="RigidBody2D2" parent="crates" instance=ExtResource("1_tfj4n")] +position = Vector2(509, 216) + +[node name="RigidBody2D3" parent="crates" instance=ExtResource("1_tfj4n")] +position = Vector2(576, 241) +rotation = -1.0315 + +[node name="RigidBody2D4" parent="crates" instance=ExtResource("1_tfj4n")] +position = Vector2(540, 178) +rotation = 0.0531393 + [connection signal="areaTrigger" from="Area2D" to="." method="_on_trigger"] [connection signal="body_entered" from="Area2D" to="Area2D" method="_on_body_entered"] diff --git a/januaryproject/scenes/player.tscn b/januaryproject/scenes/player.tscn index a84c7a9..bea574d 100644 --- a/januaryproject/scenes/player.tscn +++ b/januaryproject/scenes/player.tscn @@ -1,9 +1,177 @@ -[gd_scene load_steps=3 format=3 uid="uid://dcbk086hhrn7y"] +[gd_scene load_steps=28 format=3 uid="uid://dcbk086hhrn7y"] [ext_resource type="Script" path="res://scripts/charactercontroller.gd" id="1_6alft"] +[ext_resource type="Texture2D" uid="uid://c8esv4rqrll0u" path="res://assets/graphics/player/idle/Player Idle 48x48.png" id="2_itql4"] +[ext_resource type="Texture2D" uid="uid://cpksf8fvm4k26" path="res://assets/graphics/player/jump/player jump 48x48.png" id="3_fjlo4"] +[ext_resource type="Texture2D" uid="uid://lum1fe47ggoy" path="res://assets/graphics/player/run/player run 48x48.png" id="3_fp3hq"] [sub_resource type="CircleShape2D" id="CircleShape2D_qrixx"] +[sub_resource type="AtlasTexture" id="AtlasTexture_xei83"] +atlas = ExtResource("2_itql4") +region = Rect2(0, 0, 48, 48) + +[sub_resource type="AtlasTexture" id="AtlasTexture_0rt17"] +atlas = ExtResource("2_itql4") +region = Rect2(48, 0, 48, 48) + +[sub_resource type="AtlasTexture" id="AtlasTexture_sud8s"] +atlas = ExtResource("2_itql4") +region = Rect2(96, 0, 48, 48) + +[sub_resource type="AtlasTexture" id="AtlasTexture_l40ca"] +atlas = ExtResource("2_itql4") +region = Rect2(144, 0, 48, 48) + +[sub_resource type="AtlasTexture" id="AtlasTexture_fccip"] +atlas = ExtResource("2_itql4") +region = Rect2(192, 0, 48, 48) + +[sub_resource type="AtlasTexture" id="AtlasTexture_fsk16"] +atlas = ExtResource("2_itql4") +region = Rect2(240, 0, 48, 48) + +[sub_resource type="AtlasTexture" id="AtlasTexture_ub2tx"] +atlas = ExtResource("2_itql4") +region = Rect2(288, 0, 48, 48) + +[sub_resource type="AtlasTexture" id="AtlasTexture_7c3ch"] +atlas = ExtResource("2_itql4") +region = Rect2(336, 0, 48, 48) + +[sub_resource type="AtlasTexture" id="AtlasTexture_yr10o"] +atlas = ExtResource("2_itql4") +region = Rect2(384, 0, 48, 48) + +[sub_resource type="AtlasTexture" id="AtlasTexture_xw5gp"] +atlas = ExtResource("2_itql4") +region = Rect2(432, 0, 48, 48) + +[sub_resource type="AtlasTexture" id="AtlasTexture_4x1vb"] +atlas = ExtResource("3_fjlo4") +region = Rect2(0, 0, 48, 48) + +[sub_resource type="AtlasTexture" id="AtlasTexture_secem"] +atlas = ExtResource("3_fjlo4") +region = Rect2(48, 0, 48, 48) + +[sub_resource type="AtlasTexture" id="AtlasTexture_gwif0"] +atlas = ExtResource("3_fjlo4") +region = Rect2(96, 0, 48, 48) + +[sub_resource type="AtlasTexture" id="AtlasTexture_5c5x4"] +atlas = ExtResource("3_fp3hq") +region = Rect2(0, 0, 48, 48) + +[sub_resource type="AtlasTexture" id="AtlasTexture_12spb"] +atlas = ExtResource("3_fp3hq") +region = Rect2(48, 0, 48, 48) + +[sub_resource type="AtlasTexture" id="AtlasTexture_atg7s"] +atlas = ExtResource("3_fp3hq") +region = Rect2(96, 0, 48, 48) + +[sub_resource type="AtlasTexture" id="AtlasTexture_xrqff"] +atlas = ExtResource("3_fp3hq") +region = Rect2(144, 0, 48, 48) + +[sub_resource type="AtlasTexture" id="AtlasTexture_exuqk"] +atlas = ExtResource("3_fp3hq") +region = Rect2(192, 0, 48, 48) + +[sub_resource type="AtlasTexture" id="AtlasTexture_1g4qy"] +atlas = ExtResource("3_fp3hq") +region = Rect2(240, 0, 48, 48) + +[sub_resource type="AtlasTexture" id="AtlasTexture_6po63"] +atlas = ExtResource("3_fp3hq") +region = Rect2(288, 0, 48, 48) + +[sub_resource type="AtlasTexture" id="AtlasTexture_epwr5"] +atlas = ExtResource("3_fp3hq") +region = Rect2(336, 0, 48, 48) + +[sub_resource type="SpriteFrames" id="SpriteFrames_yi1g3"] +animations = [{ +"frames": [{ +"duration": 1.0, +"texture": SubResource("AtlasTexture_xei83") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_0rt17") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_sud8s") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_l40ca") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_fccip") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_fsk16") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_ub2tx") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_7c3ch") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_yr10o") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_xw5gp") +}], +"loop": true, +"name": &"idle", +"speed": 12.0 +}, { +"frames": [{ +"duration": 1.0, +"texture": SubResource("AtlasTexture_4x1vb") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_secem") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_gwif0") +}], +"loop": false, +"name": &"jump", +"speed": 5.0 +}, { +"frames": [{ +"duration": 1.0, +"texture": SubResource("AtlasTexture_5c5x4") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_12spb") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_atg7s") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_xrqff") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_exuqk") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_1g4qy") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_6po63") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_epwr5") +}], +"loop": true, +"name": &"run", +"speed": 12.0 +}] + [node name="CharacterBody2D" type="CharacterBody2D" groups=["player"]] script = ExtResource("1_6alft") metadata/_edit_group_ = true @@ -23,3 +191,11 @@ position = Vector2(10, -5) [node name="LeftTarget" type="Node2D" parent="."] position = Vector2(-10, -5) + +[node name="Camera2D" type="Camera2D" parent="."] + +[node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="."] +texture_filter = 1 +sprite_frames = SubResource("SpriteFrames_yi1g3") +animation = &"jump" +autoplay = "jump" diff --git a/januaryproject/scripts/bullet.gd b/januaryproject/scripts/bullet.gd index d64553c..1da33b1 100644 --- a/januaryproject/scripts/bullet.gd +++ b/januaryproject/scripts/bullet.gd @@ -1,4 +1,5 @@ class_name Bullet extends Area2D +@onready var bulletGraphic: Sprite2D = $Sprite2D var speed = 700 signal hit @@ -17,9 +18,13 @@ func _physics_process(delta: float) -> void: func setSpeed(value): speed = value + if speed <0: + bulletGraphic.flip_h = true + else: + bulletGraphic.flip_h = false func _on_body_entered(body: Node2D) -> void: print("Bullet hit sumtin") if not body.is_in_group("player"): - hit.emit(body) + hit.emit(self, body) diff --git a/januaryproject/scripts/charactercontroller.gd b/januaryproject/scripts/charactercontroller.gd index d27ddf2..5b59901 100644 --- a/januaryproject/scripts/charactercontroller.gd +++ b/januaryproject/scripts/charactercontroller.gd @@ -4,6 +4,7 @@ extends CharacterBody2D const SPEED = 500.0 const JUMP_VELOCITY = -600.0 @export var BUMP_FORCE = 90 +@onready var animation: AnimatedSprite2D = $AnimatedSprite2D # Shove Attack Variables @onready var right_ray: RayCast2D = $RightRay @@ -18,15 +19,21 @@ var pushLeftEnabled = false @onready var right_target: Node2D = $RightTarget @onready var left_target: Node2D = $LeftTarget +var isJumping = false func _physics_process(delta: float) -> void: # Add the gravity. if not is_on_floor(): + velocity += get_gravity() * delta - + else: + isJumping = false + # Handle jump. if Input.is_action_just_pressed("jump") and is_on_floor(): velocity.y = JUMP_VELOCITY + animation.play("jump") + isJumping = true # Shove Attack if Input.is_action_just_pressed("shove"): @@ -36,26 +43,33 @@ func _physics_process(delta: float) -> void: pushTarget.apply_central_impulse(Vector2(-1,0) * PUSH_FORCE * 2 ) # Handle Shooting if Input.is_action_just_pressed("shoot"): - # make a new bullet - var myBullet = %SceneManager.bulletFactory() - - #var myBullet = bullet.instantiate() - owner.add_child(myBullet) - myBullet.transform = right_target.global_transform + if faceLeft == true: - myBullet.transform = left_target.global_transform - myBullet.setSpeed(-700) - + var myBullet = %SceneManager.makeBullet(left_target.global_transform, -700) + #myBullet.transform = left_target.global_transform + #myBullet.setSpeed(-700) + if faceLeft == false: + var myBullet = %SceneManager.makeBullet(right_target.global_transform, 700) + # Get the input direction and handle the movement/deceleration. # As good practice, you should replace UI actions with custom gameplay actions. var direction := Input.get_axis("left", "right") if direction: velocity.x = direction * SPEED if direction <0: + if not isJumping: + animation.play("run") faceLeft = true + animation.flip_h = true if direction >0: + if not isJumping: + animation.play("run") faceLeft = false + animation.flip_h = false + else: + if not isJumping: + animation.play("idle") velocity.x = move_toward(velocity.x, 0, SPEED) move_and_slide() diff --git a/januaryproject/scripts/gamecontroller.gd b/januaryproject/scripts/gamecontroller.gd index 5b61119..1c2c8e8 100644 --- a/januaryproject/scripts/gamecontroller.gd +++ b/januaryproject/scripts/gamecontroller.gd @@ -3,6 +3,9 @@ extends Node2D var boxTotal = 4 var timer:= Timer.new() var countdown = 10 +var totalCrates = 0 + +signal destroyBox(body) # Called when the node enters the scene tree for the first time. func _ready() -> void: @@ -36,5 +39,7 @@ func _on_trigger(effect: Variant, body) -> void: func bulletHit(body): print("Game controller knows bullet hit something") if body.is_in_group("destructable"): - body.queue_free() - + destroyBox.emit(body) + +func countCrates(value): + totalCrates = value diff --git a/januaryproject/scripts/scene_manager.gd b/januaryproject/scripts/scene_manager.gd index 7b4895a..94a4e68 100644 --- a/januaryproject/scripts/scene_manager.gd +++ b/januaryproject/scripts/scene_manager.gd @@ -1,11 +1,23 @@ extends Node @onready var game: Node2D = $".." +@onready var crates: Node2D = $"../crates" var bullet = preload("res://scenes/bullet.tscn") +var bulletArray:Array = [] +var bulletsMadeTotal :=0 +var totalCrates := 0 # Called when the node enters the scene tree for the first time. func _ready() -> void: - pass # Replace with function body. + game.destroyBox.connect(boxDestroy) + for obj in crates.get_children(): + if obj.is_in_group("destructable"): + #increase the box counter + totalCrates +=1 + + + + # Called every frame. 'delta' is the elapsed time since the previous frame. @@ -14,10 +26,31 @@ func _process(delta: float) -> void: func bulletFactory(): print("Factory will make a bullet") - var myBullet = bullet.instantiate() - myBullet.connect("hit", onBulletHit) + var myBullet + if bulletArray.size() < 4: + myBullet = bullet.instantiate() + myBullet.connect("hit", onBulletHit) + owner.add_child(myBullet) + else: + myBullet = bulletArray.pop_back() + + bulletArray.push_front(myBullet) return myBullet -func onBulletHit(body): + +func makeBullet(position, speed): + var myBullet = bulletFactory() + myBullet.transform = position + myBullet.setSpeed(speed) + return myBullet + +func onBulletHit(bullet, body): + bullet.position = Vector2(-100,-100) + bullet.setSpeed(0) + print("Scene manager knows bullet hit") game.bulletHit(body) + +func boxDestroy(body): + body.queue_free() +