From b824c5eb64b8c2861efac6de408c7f86a444d3d5 Mon Sep 17 00:00:00 2001 From: stevensoroka Date: Mon, 25 Aug 2025 21:07:20 -0400 Subject: [PATCH] added paralax, etc --- .DS_Store | Bin 0 -> 6148 bytes .vscode/settings.json | 5 + assets/.DS_Store | Bin 0 -> 6148 bytes assets/graphics/.DS_Store | Bin 0 -> 6148 bytes .../graphics/backgrounds/Additional Sky.png | Bin 0 -> 123 bytes .../backgrounds/Additional Sky.png.import | 34 ++ .../graphics/backgrounds/Additional Water.png | Bin 0 -> 122 bytes .../backgrounds/Additional Water.png.import | 34 ++ assets/graphics/backgrounds/BG Image.png | Bin 0 -> 586 bytes .../graphics/backgrounds/BG Image.png.import | 34 ++ .../graphics/backgrounds/forestbackground.png | Bin 0 -> 7521 bytes .../backgrounds/forestbackground.png.import | 34 ++ assets/graphics/mushroom_32x64.png | Bin 0 -> 2776 bytes assets/graphics/mushroom_32x64.png.import | 34 ++ assets/graphics/objects/crate.png | Bin 0 -> 1761 bytes assets/graphics/objects/crate.png.import | 34 ++ assets/graphics/pickups/coin.png | Bin 0 -> 500 bytes assets/graphics/pickups/coin.png.import | 34 ++ assets/graphics/player/pixel_bullet.png | Bin 0 -> 3870 bytes .../graphics/player/pixel_bullet.png.import | 34 ++ assets/graphics/veg_32x32.png | Bin 0 -> 675 bytes assets/graphics/veg_32x32.png.import | 34 ++ project.godot | 8 + scenes/bullet.tscn | 10 +- scenes/coin.tscn | 114 +++++ scenes/crate.tscn | 13 +- scenes/game.tscn | 404 +++++++++++++++++- scenes/player.tscn | 3 + scripts/bullet.gd | 7 +- scripts/coin.gd | 7 + scripts/coin.gd.uid | 1 + scripts/gamecontroller.gd | 15 +- scripts/player.gd | 1 + scripts/scene_manager.gd | 5 + 34 files changed, 870 insertions(+), 29 deletions(-) create mode 100644 .DS_Store create mode 100644 .vscode/settings.json create mode 100644 assets/.DS_Store create mode 100644 assets/graphics/.DS_Store create mode 100644 assets/graphics/backgrounds/Additional Sky.png create mode 100644 assets/graphics/backgrounds/Additional Sky.png.import create mode 100644 assets/graphics/backgrounds/Additional Water.png create mode 100644 assets/graphics/backgrounds/Additional Water.png.import create mode 100644 assets/graphics/backgrounds/BG Image.png create mode 100644 assets/graphics/backgrounds/BG Image.png.import create mode 100644 assets/graphics/backgrounds/forestbackground.png create mode 100644 assets/graphics/backgrounds/forestbackground.png.import create mode 100644 assets/graphics/mushroom_32x64.png create mode 100644 assets/graphics/mushroom_32x64.png.import create mode 100644 assets/graphics/objects/crate.png create mode 100644 assets/graphics/objects/crate.png.import create mode 100644 assets/graphics/pickups/coin.png create mode 100644 assets/graphics/pickups/coin.png.import create mode 100644 assets/graphics/player/pixel_bullet.png create mode 100644 assets/graphics/player/pixel_bullet.png.import create mode 100644 assets/graphics/veg_32x32.png create mode 100644 assets/graphics/veg_32x32.png.import create mode 100644 scenes/coin.tscn create mode 100644 scripts/coin.gd create mode 100644 scripts/coin.gd.uid diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..e1e6a58fef25a62095da8cf0cb4126d408b861f0 GIT binary patch literal 6148 zcmeHKyH3ME5S)c5M50MadB4CPoTBgr`~Z+pAVmaW=-u(#%sxOQ4lMV10+ECDR&j`;8}HD7n1*jX{>M2kJ%Fl>j-?qR>*O|nlDUOUG<240Uis-KhG zkbb5gY0pQvfH)%^#`~Bhh|LLNFB}ue&@4-dS!y+6SeBD-mDdZ$#4Lx^@L_eb)r4YkI`?mp z4(o}EQa}nED&Vs>ZR!30hW^X^?>RClAO-%Z0ybOUu2+1y>aCO4^j_QOcl0k~Zlp6r lD<(!O=7YE5s~>sI@44O!$HXWnALT^-2)HgXDexBxd;)y@!4Aj$arZi@o=-S;z!To_h_~PT z?cs3l9rHIUD+Q#06p#W^Knlz$;JueN+$1VW0VyB_eiZQUL!&$P!Z9&E9Sku75Eo2` zaUHV+v3Y{n3&%ueXqHrBQmsY|OFHwd>U!arm~>bTA68GcnoumB&ih-G!+N5k6p#X^ z3S8%Q>HYtX{>S`(O43dWNP&N)fGsxnn>Amldh6unyw^7R1Kn%B=x$sGg(2E8G1@UV f-i}vMly%M5Jnw~LV$hinI#E9Zu8T|xTv~x|4m=fx literal 0 HcmV?d00001 diff --git a/assets/graphics/.DS_Store b/assets/graphics/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..b6b1d76a1a027af88a3ba33342249093a6139799 GIT binary patch literal 6148 zcmeHKJ8Hu~5S?*EFt~B)afZaln^eyyjQcDX>EuoB zzu?c`$}AP20#twsPys5iq=5Ba*m@JlNCl_>75GuWz7GX%SQCdp|8yYu2mox5cEj3d z31G1VuqF(0jUM^Y#8L0pj7%T7; z+pYEg7x=>bKPGWU1*pKkQb3!->!HOfWpAClob}oQKf9ZhT`MGYL?v~^nRo75UoU1oyBMep2{fokzCXh3@iSrjC6K76tDnm{ Hr-UW|@_8UB literal 0 HcmV?d00001 diff --git a/assets/graphics/backgrounds/Additional Water.png.import b/assets/graphics/backgrounds/Additional Water.png.import new file mode 100644 index 0000000..fba7cfa --- /dev/null +++ b/assets/graphics/backgrounds/Additional Water.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://56yn4twr0ha5" +path="res://.godot/imported/Additional Water.png-61e2fa27b0287dabbb2315080fcba882.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/graphics/backgrounds/Additional Water.png" +dest_files=["res://.godot/imported/Additional Water.png-61e2fa27b0287dabbb2315080fcba882.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/assets/graphics/backgrounds/BG Image.png b/assets/graphics/backgrounds/BG Image.png new file mode 100644 index 0000000000000000000000000000000000000000..3f2a66cdec1b972eb949fe533eeaa80f766ed3f1 GIT binary patch literal 586 zcmeAS@N?(olHy`uVBq!ia0y~yU~B-g8#vg2B-4g{+(3%4ILO_JVcj{Imp~yFPZ!6K ziaBp@8uBtZ2)H^bgex&#*I3}nq09ARf`ez#j)ZRW#ShB$tIKO_^L{fpoXf0YU@&H3 zQ1D`4STrc8YtR4Ay~l8%p>*Gxm%I!-1&j)|>BJL8*qp)78&qol`;+0G-xy AkpKVy literal 0 HcmV?d00001 diff --git a/assets/graphics/backgrounds/BG Image.png.import b/assets/graphics/backgrounds/BG Image.png.import new file mode 100644 index 0000000..e957b47 --- /dev/null +++ b/assets/graphics/backgrounds/BG Image.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cuar5ad7dekq6" +path="res://.godot/imported/BG Image.png-3222f804d79eb91aa2d4605e9dfa818d.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/graphics/backgrounds/BG Image.png" +dest_files=["res://.godot/imported/BG Image.png-3222f804d79eb91aa2d4605e9dfa818d.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/assets/graphics/backgrounds/forestbackground.png b/assets/graphics/backgrounds/forestbackground.png new file mode 100644 index 0000000000000000000000000000000000000000..975c185ca0a69fb6d672f68b36f8df4fe31d28b9 GIT binary patch literal 7521 zcmc(E`#+O^_&-HTO2@ZD==>InbP~2v@^*@0W)V|_kmDRTBlRvRImC$ADls-Jr^L(> z!jkZUg ziwZ2En)@$od^>3pR(?WrybyZs<}+KZ%DHc?$vWb|PH3v=xadE=Z+zBzXtWNj;w9~L7No9rdG<+D zvJ1>5W+Er>^S8^5UYhz~mB0Vu`WIK~YQ0rnITCz}9@?hRqfN}IzV4SV>&Hx^UVKZ3 zWz^XCDF&Z+-*f2Jxx)7^4n4Z%!>}kz`NVx2A6qz<*^-|^-2G3Iboz%I0UHgXQU0Tn z;mLpB9Z8hT)k)&&?vM(PL(+rmlU4CCJ2r4}T9hdr#^Wq-5Ani<5UDl)oeGQ#)&o1W zBOb@8n_QcEK8Zg&8S+h_gofxM(*;9_oPfR@>tXK4>okL2&w`E#DKpsw5@Q4tWjGvO>T6Pi30zl-P)E$v!0^A$33uBPj`E2}y|q#{Y}c|8)cZrzig} z9Qx1R0pphv|GUff|HG^Q@bG`b;<1Rh<13srgro!{H|LE6RIf(@28A(!d;tZhmi)!J zWYDX^XP#GE;z;aw_9N1L|8Q0!6Gc!XJQ_V6PJYd}OJev}3`Ex?oxZzWQ#rwEr&afh z6}UN{^QXY81wv*iV?Hu@D|caD^sci&tR|cSS6|!$ibp#9rK$B19Alo>D=duulf~f+ zB1hV%deoAe?|{l@JL!rJ+ZjmR^-J849Rg zT#2ll=NSyP3epzuD`MNgo-^w_(RmM{ji?KihOVCCkI~@3JVvT$!QZ=Lpkt69!mm%C z()Bc&?=y0%y39)(TD%7GAmt)ep$yt;KO$1ZW4F|HTzZt%F zr<}%HQ)6{53z^4iStiWbmqkV;+Eo@Mgw**q8W3Jl2R0Ph zpeXQWL3?c{M{t5N63`q%+;!u)ic7Km!_57O6l7=kbx&3-d-37ipw)u+@jIuOP*?BG z2SZD|d_pPGlQB=GG@JukRaq$9;mFe^*x~W>ysb~;*+28k>Jrpu4cHEMR6prS+sdRE zmL>&}M+SLF|Hg}6g^!Ln0c~jq&yCooE!rSV11?%YP;1pwFL%Y52b6Xq+a za)q65SDlI8MFrbXxl^K2?`2e5Q8ekhR8&=D&!8 zN%bza?o|o=t#7?*T!z{U(GEL0X>FIfkE%Yv;J7>{`bC;?u5P=WX+gC;dl9`$Vf5@P z1^7C2#0yA_DG!F`=GBU@Y>wJL$R1`(a`OZv@`RbNNHIO)y~-^_DpAiC8vL~mPM@wz zL@~26?R3`juQ4k~7wy1u(+jXu6aGM%P|`76E>GpP%NZx->a}uS9F$Sqf1dE8vTobJ z@W(|tujIy*wmqZJ$|0!F>#UE+aQ2%EY@A+~3p_WAB} z6!xzhp}`t|0;&a93i26gFam$)*-GITe_&BTs>5xxcsg-h>8YK*D~TbFC+=Uy{M^)3zDrg| zdcp0}K{tX0YELOH+Wu6QQ36hW2mO5}@o8pzzJK*l_d5n(C)0{7epo$(J_yrc3u8p- zH`BvnYg~TX6jUlG*zdc!eOq~hS|QPWmm*dI4$DyMRiQ}hj11We=!9*1!8VX*ib>`- zh+*fxaLOV7)8^bN4|zesShx-Kh9_t9ik67W<|J*Hh)0SA4)0yjc=)5e-O5lcc`?+W zs?)0%4u}88Ir!cp)#T=~r}*#l%7}o~i*g?K&7(2n7v&li;z|I&T*CPq<0R_#;Qsi= z->F7MMne-T4+X+{vH#%!HE-#9=WPZjMzC02_LL}T;Sf$9c~ttopc^Qlinav`IyBRV z+Kg_q)wXScKrmCJHHrq|nrqje-+kSe<^Cp^(mc@(0)Ym7t9%0k1O2OD>tnLM zPf^3bOZmtduZn?6KA+zW_bWk1M_2YcqfjUl9 z;y^jUG2s(7NrN48Mxsrc8PXV`Z@Cl~wbLOlOLjxMjK!@laI_+Ry@MH?(7z3Ovc998 zzT5RjGm>cndeuBJEmh}D%{=2GO`!T2DdZ0KwxdYcnsQdVMX|m4^y)N0qqgNrIl2v8o z&WNi!Ed;(1pxxw_*1Q#;TrV&3NWfYKN^Lzy*w)zdy)B%q>V1nIpxJrgk2j44Mc*EP zDLs_clD~UWk^h?m%Pe@VJv5Xb3vDshZmlFGV^&T2cuzYYnsYnaeRsJURik9 zSRLuwvF2|Gy~J}XE5V^_M|+7Wa`pshb3Z>;lh)%2)FmWvd zP&xKAw|=Od-l14PGl;&n+I&0~5N0DEJEMm$jXOVuDENDA0i}3q5qX!m3h!-L6)a2F!kMcv)L0~T%utne z%tzMcFMGN~hD&4b;d0#zdrt8SXj>6Kce{McY??t1y>z*UsOq6q>C1n0<`DqcIcg48 zbW|Yg&L6)Gy2R!lZS&9P4#tBG-wB<2}1rz zVAH}~O8RS!9U!-PW$@kkjA<=_@=VAw|4J!bj@5WepT|FvhDC#!d|(sZ-Nj~XN|k@; z7pmsv?EA>)KbBQjAg4PWB;2m{w?Gz8yOuvItzP`;5oslLkqWau7Coq&c^-K7G389q zKv!tS*;gkhevutlA+FJ|7Pl%K{H@O9h6K$22Up`B&5wUELCO@KP+)@aISDbm_JBpP z+lSnK1Zi#7cu~_^sOOiZywDq?2KdNckMvM`G^Sfxr0NV=pNfN$egE+3j%}KgZ)Wun z>zDhNb|$iyy*g|?Nk2{=FOGi29uBAiT=aN5|I5lCh0{}5{+ale?jRSG@cDw1)GX9i z$DDlT=k?4gw_KZUzuQ*03O&r7L!+Xl%Nq$AFEh>iz6>owcIQTtueW6VVIZ^TL~+`CHyEAw4=Zzn$`qiKdPU-;*;MCtR(m<38xOlj?ApC6S~ zEl!I|b4zb-I1t0(jHRqi_*z>%sxCWYYjk#ZRP^{sYZ?W)wazAEId z+Ov&N15Co3(wRfo77sg~EgB=3U~TaDnm^6WW`d24NCR@`vB;m9MfkZM~JUgdPMQdHdu>E)1`MApEgYl}P{PecEAM7)c3X1GD_PZ6Nu z&iAFgO69TQiJi4pCFsX;?jalwCnhT(rfe@2aQ*6o0Y?wm{yR$yIwxI}r5}R*{z388 z93*Ts801#jg05}T>GcNS>{o6I;V6a?2=tS)7*57VVo)}1u-tMEf7)B!moV*~J&s>5 z{PO87W&!0?WE6Sni{lOSiI6h8mtb+fVy6xhZg9kugzZ6w9`_x38HcmM>z*$gTKw7Z zf<~i>Ve-#V&$BsWSqxeJQ{%d3?ITLYy^Keu8^Bl1L{#aVjxf;e^8ph?QMnjLcYfkhOy*j(btb)bC$(l>6%bx** zx(g?m^gf=@{6e4$!8QRa11C~G`=)4LB3vJ6>xO73Y03=nyKPjBAzhD}1}&$VIc_F6 z{>VwSyCKOAv$EK(Pm0!zZ1OiDC>(#&0Uz%5~D7sgxa2jA{GLr>88Ubx@oMV(2F z`o}L{nqssQqlD~rL;iWp!<^ZZ*gLt4{So^&@AXxX)^lr$>5fe~j>uE7Rg1m3@_`jG z;6o)Y6#k<)l@>}2CVfe;O@AJpX-$&^n%3TaxC*82Baq#g4Mh$r&+eGfW?`~(n#SD+CO6>~YD zk~Niv;Q$O-t?n?pY`f;>oLT`2M%TC)m4ill>JQ@0W^wI`ko~8!(lQ&uah6`jBM9!~ zhpo%(hEm8LqV}7C{a3zw-|mxnH&=LtBPXWf)H&rNt{puwI-+h9BkU2ET=VpuZ>gH@ zT`^aKzWy%w8YSpZx`Uyl?Ccp1c7WSJm95uz(i+paV^1l^{a~u%s`pu6p>Owv`4w?< z-^tqE=DS_7*J{c2ImnbiUs*qk0;UuwMgOSI@@r9aN(ktH8X_GZ}9N8*^cZd{*e zPHvr#jfnw8?FDr@{6z-0yPgYu`y?|VIcHEk_w|VMO-8VwmNneMp#kL@zb5xSYdY+P z;`j##JJb}I`_(!R@FU&o51;x`FnBzBYV=7u!}8#|Mk2%0hR35sUx-WIijs@*WZ^^g zXP_jLLa#k@Eovb__t(-@tf`lqdMZdtPHG!tPv78OqbM72)?DJP9}>jg^kFU9?;QEk zs0G(AlB(gUXTkG^o1Vx}OB?jz+O43f=ro4A&|Ov07tiCJ3-3Y0Vgx^2AltKJE4IIk!Hm8W!i zHB&XJk&yJW&ErQ;9%+HC>8f^Pi5d4-)@nInBHBTR-2?O? z`Ft5_i>cE2YLMJ*SdN9VxRF7;@)LX)Jis_`2+oKB-P7*R=hL|g@OG2> z9+bRBwB%2>mO>()SF!F1%j6aA12FTEpbE`oWR+BjT&4TpAh5a9 zm`}6f-asjHv;u)jfxoN92ryZ!?H{wi- zn1jH%jWV(d)#5{kHpd^`!BI=YzgY{{9p>==!+#le^`Z?}bp>Fo@NTZeli3e zknit6(|n9zbmE1V;_MGtxZydc7O(SUO7g>|a(`QlfeOVRQL{V&36S@XR6MDw3?yy6 zC>X_Bj199f=g6GbE%pH3jJyIZlDyA>P+on)7_w5z))C-yvhmX1|Y&P0nDSUJE z^5}0=gZa@y=t-^q$>4ms$^x{`E&gcwYKofkE;^U~8uQymIup8rSSLyi0=f#TGY37c zg9vR;xzH|^1g?ZFfA{45qSOaBOG-K3#hc%uOR&-|mD{w>gCEBA5jEL(00k>NOTL37 z4KJK!dFK@BS+8q&(PEHyAc1QFt@X>jCuJt}1qgEfbSdlINA{CG2jRweay1YPX@#jd z(BM3#u;33CnO>w zEYE(m!bY@Ye!8u?P}B4kZ@H0h0JLQ@0JHb!xrZ8QQeWCl{v+hnDO~4fi}y`XIS8C@ zSY_t%pedV7Q!r=a zT(T2%uT<=h?Y@i}=J-vH?eC(9!!X9efLq9DP@o+tI{+nK;}i3JD2t3bg|Ga9+a+xy zmi3PZ1TmY=9RS^$kVQ7&gxiUg#}B5VodbLTY0V&7;Z|UBzFRXM4kYDA7zER{`(E8g zzFS7yzpoh!p3uHy51tPnzO;hZC2mdcZizvQI@sp%rl+oHjTsY z(Y;L(ZJR5Re>NSz-afzZ`XNHK&his>^&27dS!F7fL)pG)#-GcTu(C@abn!To=zBY?vw#*%0eN+Z`Sf*FbAD54+zeB6vYo;yt01Ks`00h`k z4w6>?0fIjxeK0WJCC!z6e>9Sya~4%WND!@xyHj!%$y&^@+6F01zdiJw zbN-aW)0gVA)2zjTMTz{4Axc4q)*_^X;-iq9>eH8Zc96;Ole1d%E~vw8 z*p-+gEpN)+qf3OyJOP74z=eV5!1B6yl8+G>)Ow4)HcH5qq@&`6ui;C;NX66sovKq+ zw-x}&mm)$p>ercY`q|zQ=J<1|i(pII=caVD(aEziPOLrUO)=nm#992_jXqSocsD{u u(P*k@(6TzzcEX>4Tx04R}tkv&MmKpe$iTcsiu5i5!~WT;Lph>AFB6^c+H)C#RSm|Xe=O&XFE z7e~Rh;NZt%)xpJCR|i)?5c~jf7n~Gbq{ROvg%&X$9QWhhy~o`#<}3IpJ#@RbZVYBOe_@ISZ-rhG*sd#;)tSZl<&{D ztZ?4qtd^^+c~AbrP)=J}<~q$0B(R7jh!7y7iW17O5TjKi#YBqs;~xHD$1jpgCRYiJ z91EyGh2;3b|KNAGW`1(QO$x<<&KKMM7zKj6K%-{c-^aGyH~|9Bz?IhWSL(pbC+W48 z7C8cXw}Ff6mL~53mpj1FlP(#OBL!&s^LgO?jJ_!g^xp#AYi@7NeVjf3Y3eF@0~{Oz zV+G1y_jq?#dvE`qY4-O6go1LeRQ&;x00006VoOIv0RI600RN!9r;`8x010qNS#tmY zE+YT{E+YYWr9XB6000McNliru=>rk~0xdVjJJ|pL02y>eSad^gZEa<4bO1wgWnpw> zWFU8GbZ8()Nlj2!fese{00^*2L_t(&-tCyrk6c%k$3N%Z_p08H`d!`C-EO<>b_|}3 zNvx0{g7_iW5JkWuLSc&piVzF_4K|>WW;IF{Go#V0W|jk30)hA?gair_L=YkjZWDLg z?yBzUuB!K{-j91&RCU{C9PHR(X46M1y;tv^d(Kzqo_o&sUO15xIgt}NkrO$Q6FHIp zXOVZK{G~I!8qh%rR1pO|G9rQ?j0J`@W0HT~x~UIi(|b1noMRJsq27+ZF&s=@RmHJz zZbU?c|NQqGw}1Ne&2_^9++#=J%V&Br&a~PJq*tj&TMyDV)8z9zQ}@098WxjJ*Q|c` z=0G2N3103kKh>zpr=w={%@0Ibza5*UR%{4-1Hdd-4w90+i5vcAQfd8ZZ}f?8Z4Z9( zSP^(-qbH+G{dOQdE4(Oi^cuit)=Ib5w5C(@2rKjH(_Gmfmuw#v?prsk0l0ZEUjFYt z_xm4gckD_adSz$e?i;bc0nYc0ToU2sBj+!ym7HpMW+@ixeokm}LQknxgl^5U-t^21 zr%EnHv%}S9ZTAZsOCNiEf3F1Wqa>jZT(WWWPft{4lZ#z1SZ`XpRI`L(hwN$An4x8m0TnxW8&EpZe; zr9s*_&B5|{6p*sOW(Sz!0IQC;3N2@8M+Szl9Ma2ze49;*br*4CE71onL1ndW-fxAE z09=Z)TT4}0349M%KTFy=$Edx|VY3H-EppWQgu^ZT$#pC<0#E3L^W}K5*SPjZI*7SS zE@$z8;z3JL1)lXPl~(~a8n&|>D!#E~(GsKXX@=ePW94CYol*A;S+s{B7oBOsE3Aj%@T(`o++t}wrFhs zn&$4Eg4o>MqOtP^esU8vA!;Iw2vJpN#)d|)aN#%~EC8&ZjpTpjz{sinP_MH&EcLn8 z;#=$sfhYLZpsJ7$FvS7t1@vwN^9T&DW3xlD`UcJqs7!8QN7pHfDMbOexv#G+t^VLU zqumY829rKI2C{nqG>x?1*9hMN&}nw_LbdFKrcx0=kK3LH2>xW7MmYmjyxAUkw907t zJVhm>v1{-Tw;3lHgRx~gfowX?x3kj!M=IA7nLY2rZ?7K#cyX;8WXhSUkq-itS+>6x zo7HY;@Kl-33VdVnJ%g2bIBmX<&G$e{5KF1c*fOWgEm@W`n>zN!C4)nlB#KuW|0w^S z)9TOvAlcf|*>LJ3zNb(JKDki~UL(u4&xEG8TC;RxgCGnOL4jrj=I#{IMG7g{beH-q zVX7X<{(ysFN`GYNkCo9>QH3@h`->fTK`T3bnKqA>prXn-fJPvvR$@yxgs|dKgdGmT z2F@!m#gL#({;Gd1-m^Uz4=4*|HgSv-$6gBkR2e!;=3BhdF;9wPsSE6Q0Hw|?H3Fd% z3$gDop2w`dOxj+dD5mIsMm0TrhbF3^4(F7t5DJB)RQiRoXMAR!!OKgQoTKluqe;c~ zR^sm2mm-VbkrNSAgv<$(8DvR`9y`~&z|8rWQ=xE>=8j3Bj0$Dy>wJ#fx8Tipfn5w9 zrpmsjm`I4coXV(=DRQL9FtZU(@845I=5Pw9jHk+8I)6H+_*sFJCAL(Y>V2D0Cc>Wq z4xG=eNm+;(PfS7RZc|D62nwnTM+Ws{%Ahgd5wj7RjVVh;NzQI+xII&bg;FfSE%WwQPEiZ+y39U$ zV=MXDQR*Hq>c>_(o>Sh}vGV+dM)sN!@U-bnB5cmE^lY6Tf&TWN7mDXtqSuO#K0pNs9@A4lm|&ey|NQ}s!wcP77` z&UUb_Z6^DH8K#uhFx8x-3`xo<)gZpdSu{Gl=l>g$d7y3?!;N=h#n1OTHZt-g@XXWA z@IU@~{7tccs>RV}vtGlm`V>Z(%rf@&_L=2(sNb)~x7RJ4Uig>+Z;fG=ZKdVkWJGN% z4tNXL`u$qFpV8vkMPB1@oSRcH8 za9F-gUOw<7^|0r{m!7@o9~T~Du%3_S`*?l@>w6e`hx%WSrvAg)eOHIm;~E--)SFEj zwHhK|{VK!#F$ag~ySDX604migwR)XKqk)K^VyTAVBi#=?5&$CxYdt*ALqxFFVvPB} z12AufI_HT;CG8Q-7~T`nN1pi}0pJ9{34p&p0Oy>$vjY`9%6whC-NpB`EX(&CfHB72 zA)#{?EDIWa^gJH-yoatY4^({V*^8zu%caeY&09y`YPFcCRwIn(y`XSPy-^3?+SM(d z{P1&=;`={7<;CIdm7PKHxDoJxOGm~x&aaKy?G~+en^vbov)!T9>Cj#3aQ58VwOM?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~e9p7otM@`~+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`#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+=&x(nlmPi0iTCqz3tK4;;V}C;o303<(_t1VZ3evop9BaQq)Hy@wH7 bkWwJVy}a1dc9wyq7sw1xS3j3^P6^r!6hi!Wct>kSmw76A*+mkqIDVjdDL!Rb}5E?Td;C@2y9S zHih2xK(yTWh+gXdrTqK8Uwx^_$MoI4V|67Hn26^Qp-rJ*c_3P5d_*tx|6%^yEznE& zeE6^KHvJ|vI7934d=L#ytZIR)9hxaN1Jm8sZ6_j{Yx1#nTWt!D2<;1?{VNX?M*l~R zzukKP+i+D+FAlB;7qkOXfaGA?&h>EX&+$Oxqgs>{d4C#zhd05hUS`kO@{&+Bb`?-H zKXwYn7Ms9B!`F}PQh%-o65r;4=uy!A4;g>*6iCRL!wF!o{9{X0YM%Mf@U=DvM2}Kx zY#A;!e+4Y{Qh#m^NPMe5dkcj0f5`ZIy8@JYG2kpkh}LrU76{dHI?&Z}2LKX(>v1MX z4k6>OaQ_N1p97frj@jdSpELonJ&y=&3jN9h(K6#Bda3^x^WUBW>`ee7IfzLSUk<|l qVg27u071wNc?u+CjZ6R`YyJS*Ofbr5QwY-l0000z>(~*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>yFhhRIUYDGCnFS9gl1jP;MDDwzHG&+h;K+2GdvZU3J3 zw12hxb6V2B``5mvhX2KG3zs(cw7q7~FSt^`>Lv8Ckn!+WidJRfU>Qme)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@E4JM4U?x{DjexYzKxv;OJTj+%qvj{WveUbCOuKj-7`(|>;e zD^V>PX7iQjS%3-a{%e2fb=Sj7L@prwy6%`+O!(4S^NnN9-dkb^ zj`#KUxjW+GF9tdsEC&>94-xA_0#h3)i=JcjDe~5+4o##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&TQEX>4Tx04R}tkv&MmKpe$iTcsiu5i5!~WT;Lph>AFB6^c+H)C#RSm|Xe=O&XFE z7e~Rh;NZt%)xpJCR|i)?5c~jf7n~Gbq{ROvg%&X$9QWhhy~o`#<}3IpJ#@RbZVYBOe_@ISZ-rhG*sd#;)tSZl<&{D ztZ?4qtd^^+c~AbrP)=J}<~q$0B(R7jh!7y7iW17O5TjKi#YBqs;~xHD$1jpgCRYiJ z91EyGh2;3b|KNAGW`1(QO$x<<&KKMM7zKj6K%-{c-^aGyH~|9Bz?IhWSL(pbC+W48 z7C8cXw}Ff6mL~53mpj1FlP(#OBL!&s^LgO?jJ_!g^xp#AYi@7NeVjf3Y3eF@0~{Oz zV+G1y_jq?#dvE`qY4-O6go1LeRQ&;x00006VoOIv0RI600RN!9r;`8x010qNS#tmY zE+YT{E+YYWr9XB6000McNliru=>riLDmieSad^gZEa<4bO1wgWnpw> zWFU8GbZ8()Nlj2!fese{004VQL_t(o!|ju?4Zt7_1PueQT$ad4EWvVFfK*5>Yzf;q zY5pn-!u{hw1ONa4006+xlv4-w(dJs;*Hb5K$3aK5xV}Y5s6Pw5~a#BWiLE#M?t^`K{fyY002ov JPDHLkV1hjJ7cT$+ literal 0 HcmV?d00001 diff --git a/assets/graphics/veg_32x32.png.import b/assets/graphics/veg_32x32.png.import new file mode 100644 index 0000000..3b8d035 --- /dev/null +++ b/assets/graphics/veg_32x32.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://csakuf3siypsi" +path="res://.godot/imported/veg_32x32.png-6e1e0a798898a3640b16dba9a1b34321.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/graphics/veg_32x32.png" +dest_files=["res://.godot/imported/veg_32x32.png-6e1e0a798898a3640b16dba9a1b34321.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/project.godot b/project.godot index e33700a..de7123f 100644 --- a/project.godot +++ b/project.godot @@ -15,6 +15,14 @@ run/main_scene="uid://bjk7nrcwo0ikb" config/features=PackedStringArray("4.4", "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" + [input] ForcePush={ diff --git a/scenes/bullet.tscn b/scenes/bullet.tscn index 3fefc5a..e40b7a2 100644 --- a/scenes/bullet.tscn +++ b/scenes/bullet.tscn @@ -1,12 +1,15 @@ -[gd_scene load_steps=3 format=3 uid="uid://bgwa5osciu6kj"] +[gd_scene load_steps=4 format=3 uid="uid://bgwa5osciu6kj"] [ext_resource type="Script" uid="uid://bemhplfq3bapd" path="res://scripts/bullet.gd" id="1_mkf8s"] +[ext_resource type="Texture2D" uid="uid://gptsl2hav386" path="res://assets/graphics/player/pixel_bullet.png" id="2_y25gk"] [sub_resource type="CapsuleShape2D" id="CapsuleShape2D_h1aey"] radius = 7.0 height = 32.0 [node name="bullet" type="Area2D"] +z_index = 2 +scale = Vector2(0.599998, 0.56) script = ExtResource("1_mkf8s") metadata/_edit_group_ = true @@ -15,4 +18,9 @@ rotation = 1.55509 shape = SubResource("CapsuleShape2D_h1aey") debug_color = Color(0.849979, 0, 0.312876, 0.42) +[node name="Sprite2D" type="Sprite2D" parent="."] +position = Vector2(6.66668, 5.35714) +scale = Vector2(0.199997, 0.199997) +texture = ExtResource("2_y25gk") + [connection signal="body_entered" from="." to="." method="_on_body_entered"] diff --git a/scenes/coin.tscn b/scenes/coin.tscn new file mode 100644 index 0000000..fcf20d1 --- /dev/null +++ b/scenes/coin.tscn @@ -0,0 +1,114 @@ +[gd_scene load_steps=17 format=3 uid="uid://4eqy4vr3njwo"] + +[ext_resource type="Texture2D" uid="uid://ckgemxnjysc2c" path="res://assets/graphics/pickups/coin.png" id="1_rwqht"] +[ext_resource type="Script" uid="uid://cervcsnoq87m5" path="res://scripts/coin.gd" id="2_i64fm"] + +[sub_resource type="AtlasTexture" id="AtlasTexture_i64fm"] +atlas = ExtResource("1_rwqht") +region = Rect2(0, 0, 16, 16) + +[sub_resource type="AtlasTexture" id="AtlasTexture_11l1o"] +atlas = ExtResource("1_rwqht") +region = Rect2(16, 0, 16, 16) + +[sub_resource type="AtlasTexture" id="AtlasTexture_d14el"] +atlas = ExtResource("1_rwqht") +region = Rect2(32, 0, 16, 16) + +[sub_resource type="AtlasTexture" id="AtlasTexture_1ikuy"] +atlas = ExtResource("1_rwqht") +region = Rect2(48, 0, 16, 16) + +[sub_resource type="AtlasTexture" id="AtlasTexture_wnlwo"] +atlas = ExtResource("1_rwqht") +region = Rect2(64, 0, 16, 16) + +[sub_resource type="AtlasTexture" id="AtlasTexture_jig8b"] +atlas = ExtResource("1_rwqht") +region = Rect2(80, 0, 16, 16) + +[sub_resource type="AtlasTexture" id="AtlasTexture_xmuha"] +atlas = ExtResource("1_rwqht") +region = Rect2(96, 0, 16, 16) + +[sub_resource type="AtlasTexture" id="AtlasTexture_kfxoj"] +atlas = ExtResource("1_rwqht") +region = Rect2(112, 0, 16, 16) + +[sub_resource type="AtlasTexture" id="AtlasTexture_jsmju"] +atlas = ExtResource("1_rwqht") +region = Rect2(128, 0, 16, 16) + +[sub_resource type="AtlasTexture" id="AtlasTexture_s0mny"] +atlas = ExtResource("1_rwqht") +region = Rect2(144, 0, 16, 16) + +[sub_resource type="AtlasTexture" id="AtlasTexture_7cc30"] +atlas = ExtResource("1_rwqht") +region = Rect2(160, 0, 16, 16) + +[sub_resource type="AtlasTexture" id="AtlasTexture_rojmm"] +atlas = ExtResource("1_rwqht") +region = Rect2(176, 0, 16, 16) + +[sub_resource type="SpriteFrames" id="SpriteFrames_ls27i"] +animations = [{ +"frames": [{ +"duration": 1.0, +"texture": SubResource("AtlasTexture_i64fm") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_11l1o") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_d14el") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_1ikuy") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_wnlwo") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_jig8b") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_xmuha") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_kfxoj") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_jsmju") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_s0mny") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_7cc30") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_rojmm") +}], +"loop": true, +"name": &"idle", +"speed": 10.0 +}] + +[sub_resource type="CircleShape2D" id="CircleShape2D_ssuvv"] +radius = 5.0 + +[node name="coin" type="Area2D"] +script = ExtResource("2_i64fm") + +[node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="."] +texture_filter = 1 +sprite_frames = SubResource("SpriteFrames_ls27i") +animation = &"idle" +autoplay = "idle" +frame_progress = 0.242927 + +[node name="CollisionShape2D" type="CollisionShape2D" parent="."] +shape = SubResource("CircleShape2D_ssuvv") + +[connection signal="body_entered" from="." to="." method="_on_body_entered"] diff --git a/scenes/crate.tscn b/scenes/crate.tscn index b189c95..5bdf53c 100644 --- a/scenes/crate.tscn +++ b/scenes/crate.tscn @@ -1,6 +1,7 @@ -[gd_scene load_steps=3 format=3 uid="uid://cm72yvkbgso3"] +[gd_scene load_steps=4 format=3 uid="uid://cm72yvkbgso3"] [ext_resource type="Script" uid="uid://caikxm70kr5wu" path="res://scripts/crate.gd" id="1_b66cd"] +[ext_resource type="Texture2D" uid="uid://c47jnqekdb0oe" path="res://assets/graphics/objects/crate.png" id="2_dwt0d"] [sub_resource type="RectangleShape2D" id="RectangleShape2D_uwrxv"] size = Vector2(82, 52) @@ -11,7 +12,13 @@ script = ExtResource("1_b66cd") metadata/_edit_group_ = true [node name="CollisionShape2D" type="CollisionShape2D" parent="."] -position = Vector2(4, 0) -rotation = 0.50364 +position = Vector2(-0.0187993, -3.99996) +rotation = 0.00242299 +scale = Vector2(0.310329, 0.481334) shape = SubResource("RectangleShape2D_uwrxv") debug_color = Color(0.920063, 0.281624, 0, 0.42) + +[node name="Sprite2D" type="Sprite2D" parent="."] +position = Vector2(-0.008033, -1.70919) +scale = Vector2(0.0916374, 0.0915298) +texture = ExtResource("2_dwt0d") diff --git a/scenes/game.tscn b/scenes/game.tscn index 74835ef..5500ad0 100644 --- a/scenes/game.tscn +++ b/scenes/game.tscn @@ -1,69 +1,412 @@ -[gd_scene load_steps=11 format=4 uid="uid://bjk7nrcwo0ikb"] +[gd_scene load_steps=17 format=4 uid="uid://bjk7nrcwo0ikb"] [ext_resource type="Script" uid="uid://bc6rpr127gn6l" path="res://scripts/gamecontroller.gd" id="1_lnu2h"] [ext_resource type="PackedScene" uid="uid://cm72yvkbgso3" path="res://scenes/crate.tscn" id="2_lbhrr"] [ext_resource type="PackedScene" uid="uid://bbg4idgjqm8wr" path="res://scenes/player.tscn" id="2_lnu2h"] [ext_resource type="Script" uid="uid://slrv7nc7hjkl" path="res://scripts/scene_manager.gd" id="2_p57ef"] [ext_resource type="PackedScene" uid="uid://d1gmq2hler2x3" path="res://scenes/trigger.tscn" id="2_yqjtg"] +[ext_resource type="Texture2D" uid="uid://b2djs54a544mi" path="res://assets/graphics/backgrounds/forestbackground.png" id="3_0tnpc"] [ext_resource type="Texture2D" uid="uid://lqv0pjykcj6s" path="res://assets/graphics/tilemaps/Terrain (32x32).png" id="3_p57ef"] +[ext_resource type="Texture2D" uid="uid://c7jv76bxbxvbh" path="res://assets/graphics/backgrounds/Additional Sky.png" id="3_vtaks"] +[ext_resource type="Texture2D" uid="uid://dkba2pxo8d64q" path="res://assets/graphics/mushroom_32x64.png" id="5_vtaks"] +[ext_resource type="Texture2D" uid="uid://csakuf3siypsi" path="res://assets/graphics/veg_32x32.png" id="6_kvpfn"] +[ext_resource type="PackedScene" uid="uid://4eqy4vr3njwo" path="res://scenes/coin.tscn" id="11_kvpfn"] [sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_u5sy4"] texture = ExtResource("3_p57ef") texture_region_size = Vector2i(32, 32) 0:0/0 = 0 +0:0/0/terrain_set = 0 +0:0/0/terrain = 0 +0:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) +0:0/0/terrains_peering_bit/right_side = 0 +0:0/0/terrains_peering_bit/bottom_right_corner = 0 +0:0/0/terrains_peering_bit/bottom_side = 0 1:0/0 = 0 +1:0/0/terrain_set = 0 +1:0/0/terrain = 0 +1:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) +1:0/0/terrains_peering_bit/right_side = 0 +1:0/0/terrains_peering_bit/bottom_right_corner = 0 +1:0/0/terrains_peering_bit/bottom_side = 0 +1:0/0/terrains_peering_bit/bottom_left_corner = 0 +1:0/0/terrains_peering_bit/left_side = 0 2:0/0 = 0 +2:0/0/terrain_set = 0 +2:0/0/terrain = 0 +2:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) +2:0/0/terrains_peering_bit/bottom_side = 0 +2:0/0/terrains_peering_bit/bottom_left_corner = 0 +2:0/0/terrains_peering_bit/left_side = 0 4:0/0 = 0 +4:0/0/terrain_set = 0 +4:0/0/terrain = 0 +4:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) +4:0/0/terrains_peering_bit/bottom_side = 0 6:0/0 = 0 +6:0/0/terrain_set = 0 +6:0/0/terrain = 0 +6:0/0/terrains_peering_bit/right_side = 0 +6:0/0/terrains_peering_bit/bottom_side = 0 +6:0/0/terrains_peering_bit/bottom_left_corner = 0 +6:0/0/terrains_peering_bit/left_side = 0 +6:0/0/terrains_peering_bit/top_left_corner = 0 +6:0/0/terrains_peering_bit/top_side = 0 +6:0/0/terrains_peering_bit/top_right_corner = 0 7:0/0 = 0 +7:0/0/terrain_set = 0 +7:0/0/terrain = 0 +7:0/0/terrains_peering_bit/right_side = 0 +7:0/0/terrains_peering_bit/bottom_right_corner = 0 +7:0/0/terrains_peering_bit/bottom_side = 0 +7:0/0/terrains_peering_bit/left_side = 0 +7:0/0/terrains_peering_bit/top_left_corner = 0 +7:0/0/terrains_peering_bit/top_side = 0 +7:0/0/terrains_peering_bit/top_right_corner = 0 9:0/0 = 0 +9:0/0/terrain_set = 0 +9:0/0/terrain = 0 +9:0/0/terrains_peering_bit/right_side = 0 +9:0/0/terrains_peering_bit/bottom_right_corner = 0 +9:0/0/terrains_peering_bit/bottom_side = 0 +9:0/0/terrains_peering_bit/bottom_left_corner = 0 +9:0/0/terrains_peering_bit/left_side = 0 +9:0/0/terrains_peering_bit/top_side = 0 10:0/0 = 0 +10:0/0/terrain_set = 0 +10:0/0/terrain = 0 +10:0/0/terrains_peering_bit/right_side = 0 +10:0/0/terrains_peering_bit/bottom_side = 0 +10:0/0/terrains_peering_bit/bottom_left_corner = 0 +10:0/0/terrains_peering_bit/left_side = 0 +10:0/0/terrains_peering_bit/top_left_corner = 0 +10:0/0/terrains_peering_bit/top_side = 0 12:0/0 = 0 +12:0/0/terrain_set = 0 +12:0/0/terrain = 0 +12:0/0/terrains_peering_bit/right_side = 0 +12:0/0/terrains_peering_bit/bottom_right_corner = 0 +12:0/0/terrains_peering_bit/bottom_side = 0 +12:0/0/terrains_peering_bit/left_side = 0 +12:0/0/terrains_peering_bit/top_side = 0 13:0/0 = 0 +13:0/0/terrain_set = 0 +13:0/0/terrain = 0 +13:0/0/terrains_peering_bit/right_side = 0 +13:0/0/terrains_peering_bit/bottom_side = 0 +13:0/0/terrains_peering_bit/bottom_left_corner = 0 +13:0/0/terrains_peering_bit/left_side = 0 +13:0/0/terrains_peering_bit/top_side = 0 15:0/0 = 0 +15:0/0/terrain_set = 0 +15:0/0/terrain = 0 +15:0/0/terrains_peering_bit/right_side = 0 +15:0/0/terrains_peering_bit/bottom_side = 0 +15:0/0/terrains_peering_bit/left_side = 0 +15:0/0/terrains_peering_bit/top_side = 0 0:1/0 = 0 +0:1/0/terrain_set = 0 +0:1/0/terrain = 0 +0:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) +0:1/0/terrains_peering_bit/right_side = 0 +0:1/0/terrains_peering_bit/bottom_right_corner = 0 +0:1/0/terrains_peering_bit/bottom_side = 0 +0:1/0/terrains_peering_bit/top_side = 0 +0:1/0/terrains_peering_bit/top_right_corner = 0 1:1/0 = 0 +1:1/0/terrain_set = 0 +1:1/0/terrain = 0 +1:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) +1:1/0/terrains_peering_bit/right_side = 0 +1:1/0/terrains_peering_bit/bottom_right_corner = 0 +1:1/0/terrains_peering_bit/bottom_side = 0 +1:1/0/terrains_peering_bit/bottom_left_corner = 0 +1:1/0/terrains_peering_bit/left_side = 0 +1:1/0/terrains_peering_bit/top_left_corner = 0 +1:1/0/terrains_peering_bit/top_side = 0 +1:1/0/terrains_peering_bit/top_right_corner = 0 2:1/0 = 0 +2:1/0/terrain_set = 0 +2:1/0/terrain = 0 +2:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) +2:1/0/terrains_peering_bit/bottom_side = 0 +2:1/0/terrains_peering_bit/bottom_left_corner = 0 +2:1/0/terrains_peering_bit/left_side = 0 +2:1/0/terrains_peering_bit/top_left_corner = 0 +2:1/0/terrains_peering_bit/top_side = 0 4:1/0 = 0 +4:1/0/terrain_set = 0 +4:1/0/terrain = 0 +4:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) +4:1/0/terrains_peering_bit/bottom_side = 0 +4:1/0/terrains_peering_bit/top_side = 0 6:1/0 = 0 +6:1/0/terrain_set = 0 +6:1/0/terrain = 0 +6:1/0/terrains_peering_bit/right_side = 0 +6:1/0/terrains_peering_bit/bottom_right_corner = 0 +6:1/0/terrains_peering_bit/bottom_side = 0 +6:1/0/terrains_peering_bit/bottom_left_corner = 0 +6:1/0/terrains_peering_bit/left_side = 0 +6:1/0/terrains_peering_bit/top_left_corner = 0 +6:1/0/terrains_peering_bit/top_side = 0 7:1/0 = 0 +7:1/0/terrain_set = 0 +7:1/0/terrain = 0 +7:1/0/terrains_peering_bit/right_side = 0 +7:1/0/terrains_peering_bit/bottom_right_corner = 0 +7:1/0/terrains_peering_bit/bottom_side = 0 +7:1/0/terrains_peering_bit/bottom_left_corner = 0 +7:1/0/terrains_peering_bit/left_side = 0 +7:1/0/terrains_peering_bit/top_side = 0 +7:1/0/terrains_peering_bit/top_right_corner = 0 9:1/0 = 0 +9:1/0/terrain_set = 0 +9:1/0/terrain = 0 +9:1/0/terrains_peering_bit/right_side = 0 +9:1/0/terrains_peering_bit/bottom_right_corner = 0 +9:1/0/terrains_peering_bit/bottom_side = 0 +9:1/0/terrains_peering_bit/left_side = 0 +9:1/0/terrains_peering_bit/top_side = 0 +9:1/0/terrains_peering_bit/top_right_corner = 0 10:1/0 = 0 +10:1/0/terrain_set = 0 +10:1/0/terrain = 0 +10:1/0/terrains_peering_bit/right_side = 0 +10:1/0/terrains_peering_bit/bottom_side = 0 +10:1/0/terrains_peering_bit/left_side = 0 +10:1/0/terrains_peering_bit/top_left_corner = 0 +10:1/0/terrains_peering_bit/top_side = 0 +10:1/0/terrains_peering_bit/top_right_corner = 0 12:1/0 = 0 +12:1/0/terrain_set = 0 +12:1/0/terrain = 0 +12:1/0/terrains_peering_bit/right_side = 0 +12:1/0/terrains_peering_bit/bottom_side = 0 +12:1/0/terrains_peering_bit/left_side = 0 +12:1/0/terrains_peering_bit/top_side = 0 +12:1/0/terrains_peering_bit/top_right_corner = 0 13:1/0 = 0 +13:1/0/terrain_set = 0 +13:1/0/terrain = 0 +13:1/0/terrains_peering_bit/right_side = 0 +13:1/0/terrains_peering_bit/bottom_side = 0 +13:1/0/terrains_peering_bit/left_side = 0 +13:1/0/terrains_peering_bit/top_left_corner = 0 +13:1/0/terrains_peering_bit/top_side = 0 15:1/0 = 0 +15:1/0/terrain_set = 0 +15:1/0/terrain = 0 +15:1/0/terrains_peering_bit/right_side = 0 +15:1/0/terrains_peering_bit/bottom_side = 0 +15:1/0/terrains_peering_bit/bottom_left_corner = 0 +15:1/0/terrains_peering_bit/left_side = 0 +15:1/0/terrains_peering_bit/top_side = 0 +15:1/0/terrains_peering_bit/top_right_corner = 0 16:1/0 = 0 +16:1/0/terrain_set = 0 +16:1/0/terrain = 0 +16:1/0/terrains_peering_bit/right_side = 0 +16:1/0/terrains_peering_bit/bottom_right_corner = 0 +16:1/0/terrains_peering_bit/bottom_side = 0 +16:1/0/terrains_peering_bit/left_side = 0 +16:1/0/terrains_peering_bit/top_left_corner = 0 +16:1/0/terrains_peering_bit/top_side = 0 0:2/0 = 0 +0:2/0/terrain_set = 0 +0:2/0/terrain = 0 +0:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -6.12313, 16, -16, 7.08698) +0:2/0/terrains_peering_bit/right_side = 0 +0:2/0/terrains_peering_bit/top_side = 0 +0:2/0/terrains_peering_bit/top_right_corner = 0 1:2/0 = 0 +1:2/0/terrain_set = 0 +1:2/0/terrain = 0 +1:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) +1:2/0/terrains_peering_bit/right_side = 0 +1:2/0/terrains_peering_bit/left_side = 0 +1:2/0/terrains_peering_bit/top_left_corner = 0 +1:2/0/terrains_peering_bit/top_side = 0 +1:2/0/terrains_peering_bit/top_right_corner = 0 2:2/0 = 0 +2:2/0/terrain_set = 0 +2:2/0/terrain = 0 +2:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 8.83945, 7.19564, 16, -16, 16) +2:2/0/terrains_peering_bit/left_side = 0 +2:2/0/terrains_peering_bit/top_left_corner = 0 +2:2/0/terrains_peering_bit/top_side = 0 4:2/0 = 0 +4:2/0/terrain_set = 0 +4:2/0/terrain = 0 +4:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 9.18995, 7.89663, 16, -6.12313, 16, -16, 7.08698) +4:2/0/terrains_peering_bit/top_side = 0 6:3/0 = 0 +6:3/0/terrain_set = 0 +6:3/0/terrain = 0 +6:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) +6:3/0/terrains_peering_bit/right_side = 0 +6:3/0/terrains_peering_bit/bottom_side = 0 +6:3/0/terrains_peering_bit/top_side = 0 +6:3/0/terrains_peering_bit/top_right_corner = 0 7:3/0 = 0 +7:3/0/terrain_set = 0 +7:3/0/terrain = 0 +7:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) +7:3/0/terrains_peering_bit/bottom_side = 0 +7:3/0/terrains_peering_bit/left_side = 0 +7:3/0/terrains_peering_bit/top_left_corner = 0 +7:3/0/terrains_peering_bit/top_side = 0 9:3/0 = 0 +9:3/0/terrain_set = 0 +9:3/0/terrain = 0 +9:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) +9:3/0/terrains_peering_bit/right_side = 0 +9:3/0/terrains_peering_bit/bottom_side = 0 +9:3/0/terrains_peering_bit/bottom_left_corner = 0 +9:3/0/terrains_peering_bit/left_side = 0 10:3/0 = 0 +10:3/0/terrain_set = 0 +10:3/0/terrain = 0 +10:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) +10:3/0/terrains_peering_bit/right_side = 0 +10:3/0/terrains_peering_bit/bottom_right_corner = 0 +10:3/0/terrains_peering_bit/bottom_side = 0 +10:3/0/terrains_peering_bit/left_side = 0 12:3/0 = 0 +12:3/0/terrain_set = 0 +12:3/0/terrain = 0 +12:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) +12:3/0/terrains_peering_bit/right_side = 0 +12:3/0/terrains_peering_bit/bottom_side = 0 +12:3/0/terrains_peering_bit/top_side = 0 13:3/0 = 0 +13:3/0/terrain_set = 0 +13:3/0/terrain = 0 +13:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) +13:3/0/terrains_peering_bit/right_side = 0 +13:3/0/terrains_peering_bit/bottom_side = 0 +13:3/0/terrains_peering_bit/left_side = 0 15:3/0 = 0 +15:3/0/terrain_set = 0 +15:3/0/terrain = 0 +15:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) +15:3/0/terrains_peering_bit/right_side = 0 +15:3/0/terrains_peering_bit/bottom_side = 0 16:3/0 = 0 +16:3/0/terrain_set = 0 +16:3/0/terrain = 0 +16:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) +16:3/0/terrains_peering_bit/bottom_side = 0 +16:3/0/terrains_peering_bit/left_side = 0 0:4/0 = 0 +0:4/0/terrain_set = 0 +0:4/0/terrain = 0 +0:4/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -7.70035, 16, -16, 7.61272) +0:4/0/terrains_peering_bit/right_side = 0 1:4/0 = 0 +1:4/0/terrain_set = 0 +1:4/0/terrain = 0 +1:4/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) +1:4/0/terrains_peering_bit/right_side = 0 +1:4/0/terrains_peering_bit/left_side = 0 2:4/0 = 0 +2:4/0/terrain_set = 0 +2:4/0/terrain = 0 +2:4/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 9.71568, 9.12336, 16, -16, 16) +2:4/0/terrains_peering_bit/left_side = 0 4:4/0 = 0 +4:4/0/terrain_set = 0 +4:4/0/terrain = 0 +4:4/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 9.18995, 7.89663, 16, -6.12313, 16, -16, 7.08698) 6:4/0 = 0 +6:4/0/terrain_set = 0 +6:4/0/terrain = 0 +6:4/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) +6:4/0/terrains_peering_bit/right_side = 0 +6:4/0/terrains_peering_bit/bottom_right_corner = 0 +6:4/0/terrains_peering_bit/bottom_side = 0 +6:4/0/terrains_peering_bit/top_side = 0 7:4/0 = 0 +7:4/0/terrain_set = 0 +7:4/0/terrain = 0 +7:4/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) +7:4/0/terrains_peering_bit/bottom_side = 0 +7:4/0/terrains_peering_bit/bottom_left_corner = 0 +7:4/0/terrains_peering_bit/left_side = 0 +7:4/0/terrains_peering_bit/top_side = 0 9:4/0 = 0 +9:4/0/terrain_set = 0 +9:4/0/terrain = 0 +9:4/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) +9:4/0/terrains_peering_bit/right_side = 0 +9:4/0/terrains_peering_bit/left_side = 0 +9:4/0/terrains_peering_bit/top_left_corner = 0 +9:4/0/terrains_peering_bit/top_side = 0 10:4/0 = 0 +10:4/0/terrain_set = 0 +10:4/0/terrain = 0 +10:4/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) +10:4/0/terrains_peering_bit/right_side = 0 +10:4/0/terrains_peering_bit/left_side = 0 +10:4/0/terrains_peering_bit/top_side = 0 +10:4/0/terrains_peering_bit/top_right_corner = 0 12:4/0 = 0 +12:4/0/terrain_set = 0 +12:4/0/terrain = 0 +12:4/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) +12:4/0/terrains_peering_bit/right_side = 0 +12:4/0/terrains_peering_bit/left_side = 0 +12:4/0/terrains_peering_bit/top_side = 0 13:4/0 = 0 +13:4/0/terrain_set = 0 +13:4/0/terrain = 0 +13:4/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) +13:4/0/terrains_peering_bit/bottom_side = 0 +13:4/0/terrains_peering_bit/left_side = 0 +13:4/0/terrains_peering_bit/top_side = 0 15:4/0 = 0 +15:4/0/terrain_set = 0 +15:4/0/terrain = 0 +15:4/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -7.70035, 16, -16, 7.61272) +15:4/0/terrains_peering_bit/right_side = 0 +15:4/0/terrains_peering_bit/top_side = 0 16:4/0 = 0 +16:4/0/terrain_set = 0 +16:4/0/terrain = 0 +16:4/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 9.71568, 9.12336, 16, -16, 16) +16:4/0/terrains_peering_bit/left_side = 0 +16:4/0/terrains_peering_bit/top_side = 0 + +[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_dinhu"] +texture = ExtResource("5_vtaks") +texture_region_size = Vector2i(32, 32) +0:0/0 = 0 +0:0/0/terrain_set = 0 +0:0/0/terrain = 1 +0:0/0/terrains_peering_bit/bottom_side = 1 +0:1/0 = 0 +0:1/0/terrain_set = 0 +0:1/0/terrain = 1 +0:1/0/terrains_peering_bit/top_side = 1 + +[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_kvuet"] +texture = ExtResource("6_kvpfn") +texture_region_size = Vector2i(32, 32) +0:0/0 = 0 +0:0/0/terrain_set = 0 +0:0/0/terrain = 1 [sub_resource type="TileSet" id="TileSet_gee14"] tile_size = Vector2i(32, 32) +physics_layer_0/collision_layer = 1 +terrain_set_0/mode = 0 +terrain_set_0/terrain_0/name = "LeafyDirt" +terrain_set_0/terrain_0/color = Color(0.5, 0.34375, 0.25, 1) +terrain_set_0/terrain_1/name = "veg" +terrain_set_0/terrain_1/color = Color(0.5, 0.4375, 0.25, 1) sources/0 = SubResource("TileSetAtlasSource_u5sy4") - -[sub_resource type="RectangleShape2D" id="RectangleShape2D_8cj0n"] -size = Vector2(83, 20) +sources/1 = SubResource("TileSetAtlasSource_dinhu") +sources/2 = SubResource("TileSetAtlasSource_kvuet") [sub_resource type="WorldBoundaryShape2D" id="WorldBoundaryShape2D_8cj0n"] distance = 15.0 @@ -75,24 +418,34 @@ script = ExtResource("1_lnu2h") unique_name_in_owner = true script = ExtResource("2_p57ef") +[node name="Parallax2D" type="Parallax2D" parent="."] +repeat_size = Vector2(32, 32) +repeat_times = 10 + +[node name="Sprite2D" type="Sprite2D" parent="Parallax2D"] +position = Vector2(180, 82) +texture = ExtResource("3_vtaks") + +[node name="Parallax2D2" type="Parallax2D" parent="."] +scroll_scale = Vector2(1.2, 1) +repeat_size = Vector2(320, 0) + +[node name="Sprite2D" type="Sprite2D" parent="Parallax2D2"] +position = Vector2(159, 296) +texture = ExtResource("3_0tnpc") + [node name="TileMapLayer" type="TileMapLayer" parent="."] texture_filter = 1 -tile_map_data = PackedByteArray("AAAFAAQAAAAAAAAAAAAGAAQAAAABAAAAAAAHAAQAAAACAAAAAAAFAAUAAAAAAAEAAAAFAAYAAAAAAAIAAAAGAAUAAAABAAEAAAAGAAYAAAABAAIAAAAHAAUAAAACAAEAAAAHAAYAAAACAAIAAAA=") +position = Vector2(0, 2) +scale = Vector2(1.02919, 0.998219) +tile_map_data = PackedByteArray("AAAFAAQAAAAAAAAAAAAGAAQAAAABAAAAAAAHAAQAAAACAAAAAAAFAAUAAAAAAAEAAAAFAAYAAAAAAAIAAAAGAAUAAAABAAEAAAAGAAYAAAABAAIAAAAHAAUAAAACAAEAAAAHAAYAAAAHAAMAAAADAAkAAAAAAAAAAAAEAAkAAAACAAAAAAAEAAoAAAAJAAQAAAAFAAoAAAAQAAMAAAAKAA0AAAABAAAAAAALAA4AAAABAAEAAAAMAA8AAAABAAEAAAANAA8AAAABAAEAAAAOABAAAAABAAIAAAAPABAAAAABAAIAAAAPAA8AAAABAAEAAAAOAA8AAAABAAEAAAAOAA4AAAABAAEAAAANAA4AAAABAAEAAAAMAA4AAAABAAEAAAALAA0AAAABAAAAAAANAA0AAAABAAAAAAAMAA0AAAABAAAAAAALAA8AAAABAAEAAAALABAAAAABAAIAAAAMABAAAAABAAIAAAANABAAAAABAAIAAAAKABAAAAABAAIAAAAKAA4AAAABAAEAAAAKAA8AAAABAAEAAAAJAA8AAAAAAAEAAAARAA0AAAABAAAAAAAQAA0AAAABAAAAAAAQAA4AAAABAAEAAAAPAA4AAAABAAEAAAAQAA8AAAABAAEAAAAQABAAAAABAAIAAAARABAAAAABAAIAAAASABAAAAACAAIAAAASAA8AAAACAAEAAAASAA4AAAAKAAAAAAASAA0AAAACAAAAAAAEAA8AAAABAAEAAAAEABAAAAABAAEAAAADABAAAAABAAEAAAACABAAAAABAAEAAAACABEAAAABAAEAAAACABIAAAABAAEAAAADABIAAAABAAEAAAADABMAAAABAAEAAAAEABMAAAABAAEAAAAFABMAAAABAAEAAAAGABMAAAACAAEAAAAGABIAAAAGAAAAAAAHABIAAAACAAIAAAAHABEAAAACAAEAAAAHABAAAAACAAEAAAAGABAAAAABAAEAAAAFABAAAAABAAEAAAAFAA8AAAABAAEAAAAFABEAAAABAAEAAAAEABEAAAABAAEAAAAEABIAAAABAAEAAAADABEAAAABAAEAAAAGABEAAAABAAEAAAAFABIAAAABAAEAAAAOAA0AAAABAAAAAAAPAA0AAAABAAAAAAARAA4AAAABAAEAAAARAA8AAAABAAEAAAAOAAUAAAAAAAQAAAAPAAUAAAAJAAEAAAAPAAQAAAAAAAAAAAAQAAQAAAABAAAAAAARAAQAAAACAAAAAAASAAUAAAACAAAAAAASAAYAAAACAAIAAAARAAYAAAABAAIAAAAQAAYAAAABAAIAAAAPAAYAAAAAAAIAAAAQAAUAAAABAAEAAAARAAUAAAAGAAEAAAANAAkAAAABAAEAAAAMAAgAAAABAAAAAAALAAcAAAAEAAAAAAAKAAYAAAAEAAQAAAAHAAcAAAAPAAQAAAAIAAcAAAAQAAMAAAAIAAgAAAAPAAQAAAAJAAgAAAAKAAMAAAAKAAgAAAABAAAAAAAKAAkAAAAHAAAAAAAKAAoAAAAAAAIAAAAQAAkAAAACAAAAAAAPAAkAAAABAAAAAAAOAAkAAAAGAAEAAAAOAAgAAAACAAAAAAANAAgAAAABAAAAAAALAAgAAAAJAAAAAAAMAAkAAAABAAEAAAALAAkAAAABAAEAAAAJAAkAAAAAAAIAAAAMAAoAAAABAAIAAAANAAoAAAABAAIAAAAOAAoAAAABAAIAAAAPAAoAAAABAAIAAAAQAAoAAAACAAIAAAALAAoAAAABAAIAAAAJAA0AAAABAAAAAAAJAA4AAAAHAAAAAAAJABAAAAAAAAIAAAAHAA8AAAACAAEAAAAGAA8AAAABAAEAAAADAA8AAAABAAEAAAACAA8AAAABAAEAAAABAA8AAAABAAEAAAAAABAAAAAAAAEAAAAAABEAAAAAAAIAAAABABEAAAAHAAAAAAABABAAAAABAAEAAAABABIAAAAAAAEAAAABABMAAAAAAAEAAAACABMAAAABAAEAAAAAAAoAAAAPAAMAAAAAAAsAAAAEAAEAAAAAAAwAAAAEAAEAAAADAAoAAAAKAAQAAAACAAoAAAABAAQAAAABAAoAAAABAAQAAAADAA0AAAABAAAAAAACAA0AAAABAAAAAAABAA0AAAABAAAAAAAAAA4AAAAHAAEAAAD//w4AAAAAAAAAAAD//w8AAAAAAAIAAAAAAA8AAAAHAAAAAAACAA4AAAABAAEAAAAEAA0AAAABAAAAAAAEAA4AAAABAAEAAAADAA4AAAABAAEAAAAHAA4AAAAGAAAAAAAIAA4AAAABAAIAAAAIAA0AAAABAAAAAAAFAAsAAAAEAAIAAAAVAAIAAAAEAAAAAAAVAAMAAAAPAAQAAAAWAAMAAAAQAAMAAAAWAAQAAAAEAAEAAAAWAAUAAAAEAAEAAAAWAAYAAAAEAAEAAAAWAAcAAAAEAAEAAAAWAAgAAAAEAAEAAAAWAAkAAAAEAAEAAAAWAAoAAAAEAAIAAAAWABYAAAAEAAQAAAATAA4AAAACAAQAAAAUAA8AAAAAAAQAAAAVAA8AAAAQAAMAAAAVABAAAAAEAAIAAAAWABMAAAAEAAAAAAAWABQAAAAMAAQAAAAFAA0AAAABAAAAAAAGAA0AAAABAAAAAAAHAA0AAAABAAAAAAAAAA0AAAAGAAQAAAAFAA4AAAABAAEAAAABAA4AAAABAAEAAAAGAA4AAAABAAEAAAAQABQAAAABAAQAAAARABQAAAABAAQAAAASABQAAAABAAQAAAATABQAAAABAAQAAAAUABQAAAABAAQAAAAVABQAAAABAAQAAAAXABQAAAABAAQAAAAYABQAAAABAAQAAAAZABQAAAABAAQAAAAaABQAAAABAAQAAAAbABQAAAABAAQAAAAcABQAAAABAAQAAAAdABQAAAABAAQAAAAeABQAAAABAAQAAAAfABQAAAACAAQAAAAPABQAAAABAAQAAAAOABQAAAABAAQAAAANABQAAAABAAQAAAAMABQAAAABAAQAAAALABQAAAABAAQAAAAKABQAAAABAAQAAAAJABQAAAABAAQAAAAIABQAAAABAAQAAAAHABQAAAABAAQAAAAGABQAAAAJAAQAAAAFABQAAAABAAIAAAAEABQAAAABAAIAAAADABQAAAABAAIAAAACABQAAAABAAIAAAABABQAAAAKAAQAAAAAABQAAAABAAQAAAD//xQAAAABAAQAAAD+/xQAAAABAAQAAAD9/xQAAAABAAQAAAD8/xQAAAABAAQAAAD7/xQAAAABAAQAAAD6/xQAAAAAAAQAAAAMAAwAAgAAAAAAAAAPAAwAAgAAAAAAAAAVAA4AAgAAAAAAAAAaABMAAgAAAAAAAAAIABMAAgAAAAAAAAAHAAwAAgAAAAAAAAATABMAAgAAAAAAAAARABMAAQAAAAEAAAARABIAAQAAAAAAAAAeABMAAQAAAAEAAAAeABIAAQAAAAAAAAA=") tile_set = SubResource("TileSet_gee14") -[node name="StaticBody2D" type="StaticBody2D" parent="."] -position = Vector2(205, 132) -metadata/_edit_group_ = true - -[node name="CollisionShape2D" type="CollisionShape2D" parent="StaticBody2D"] -position = Vector2(2.5, 7) -shape = SubResource("RectangleShape2D_8cj0n") - [node name="crate" parent="." instance=ExtResource("2_lbhrr")] position = Vector2(272, -97) [node name="world-boundary" type="StaticBody2D" parent="."] -position = Vector2(488, 645) +position = Vector2(488, 761) metadata/_edit_group_ = true [node name="CollisionShape2D" type="CollisionShape2D" parent="world-boundary"] @@ -115,4 +468,27 @@ position = Vector2(274, -216) [node name="player_hurt" parent="triggers" instance=ExtResource("2_yqjtg")] position = Vector2(1106, 604) +[node name="coins" type="Node" parent="."] + +[node name="coin" parent="coins" instance=ExtResource("11_kvpfn")] +position = Vector2(287, 115) + +[node name="coin2" parent="coins" instance=ExtResource("11_kvpfn")] +position = Vector2(287, 188) + +[node name="coin3" parent="coins" instance=ExtResource("11_kvpfn")] +position = Vector2(435, 238) + +[node name="coin4" parent="coins" instance=ExtResource("11_kvpfn")] +position = Vector2(595, 397) + +[node name="coin5" parent="coins" instance=ExtResource("11_kvpfn")] +position = Vector2(45, 300) + +[node name="coin6" parent="coins" instance=ExtResource("11_kvpfn")] +position = Vector2(701, 461) + +[node name="crate5" parent="." instance=ExtResource("2_lbhrr")] +position = Vector2(101, 405) + [connection signal="areaTriggerSignal" from="triggers/player_hurt" to="." method="_on_area_2d_area_trigger_signal"] diff --git a/scenes/player.tscn b/scenes/player.tscn index 31351ce..a3766d3 100644 --- a/scenes/player.tscn +++ b/scenes/player.tscn @@ -211,4 +211,7 @@ autoplay = "idle" frame = 1 frame_progress = 1.0 +[node name="Camera2D" type="Camera2D" parent="."] +offset = Vector2(0, -30) + [connection signal="animation_finished" from="PlayerAnimation" to="." method="_on_animation_finished"] diff --git a/scripts/bullet.gd b/scripts/bullet.gd index 0aa6bda..33c38c3 100644 --- a/scripts/bullet.gd +++ b/scripts/bullet.gd @@ -1,10 +1,15 @@ class_name Bullet extends Area2D +@onready var sprite_2d: Sprite2D = $Sprite2D -var speed: float = 700 +var speed: float = 500 signal bulletDamageSignal(target: Node2D, bullet: Node2D) func setSpeed(val: float): speed = val + if val > 0: + sprite_2d.flip_h = true + else: + sprite_2d.flip_h = false func _physics_process(delta: float) -> void: position += transform.x * speed * delta diff --git a/scripts/coin.gd b/scripts/coin.gd new file mode 100644 index 0000000..ac58ee6 --- /dev/null +++ b/scripts/coin.gd @@ -0,0 +1,7 @@ +class_name Coin extends Area2D + +signal coin_collected(coin: Coin) + +func _on_body_entered(body: Node2D) -> void: + if body is Player: + coin_collected.emit(self) diff --git a/scripts/coin.gd.uid b/scripts/coin.gd.uid new file mode 100644 index 0000000..8cb2ca1 --- /dev/null +++ b/scripts/coin.gd.uid @@ -0,0 +1 @@ +uid://cervcsnoq87m5 diff --git a/scripts/gamecontroller.gd b/scripts/gamecontroller.gd index 8ff770d..d8aea33 100644 --- a/scripts/gamecontroller.gd +++ b/scripts/gamecontroller.gd @@ -2,16 +2,6 @@ extends Node2D signal playerDamage -# Called when the node enters the scene tree for the first time. -func _ready() -> void: - pass # Replace with function body. - - -# Called every frame. 'delta' is the elapsed time since the previous frame. -func _process(delta: float) -> void: - pass - - func _on_area_2d_area_trigger_signal(effect: String, body: Node2D) -> void: if body.name == "world-boundary": return @@ -20,6 +10,8 @@ func _on_area_2d_area_trigger_signal(effect: String, body: Node2D) -> void: body.health -= 1 print(body.health) return + if body is Player: + return print("GC sees trigger " + effect + " on " + body.name) body.queue_free() @@ -27,3 +19,6 @@ func bulletDamage(target: Node2D, bullet: Node2D): print("game controller sees hit") target.queue_free() bullet.visible = false + +func coin_collected(coin: Coin): + coin.queue_free() diff --git a/scripts/player.gd b/scripts/player.gd index dfa36e6..3e50396 100644 --- a/scripts/player.gd +++ b/scripts/player.gd @@ -23,6 +23,7 @@ var state: State = State.IDLE var facing: FaceDirection = FaceDirection.RIGHT var pushTarget: Object var pushEnabled: bool = false +var score = 0 func _physics_process(delta: float) -> void: handle_input(delta) diff --git a/scripts/scene_manager.gd b/scripts/scene_manager.gd index 516ed44..81b0f82 100644 --- a/scripts/scene_manager.gd +++ b/scripts/scene_manager.gd @@ -3,6 +3,7 @@ class_name SceneManager extends Node2D const BulletScn = preload("res://scenes/bullet.tscn") @onready var game: Node2D = $".." @onready var triggers: Node2D = $"../triggers" +@onready var coins: Node = $"../coins" var bullets: Array[Bullet] = [] const MAX_BULLETS = 10 @@ -13,6 +14,10 @@ func _ready() -> void: for obj in triggers.get_children(): if obj is Trigger: obj.areaTriggerSignal.connect(game._on_area_2d_area_trigger_signal) + if coins: + for obj in coins.get_children(): + if obj is Coin: + obj.coin_collected.connect(game.coin_collected) # makes and recycles bullets func bulletFactory() -> Bullet: