From f23df0b1f8caca218d7d62b02bd52aa48e8a4623 Mon Sep 17 00:00:00 2001 From: Ente Date: Fri, 23 May 2025 10:58:01 +0200 Subject: [PATCH] Initial commit --- .editorconfig | 4 ++ .gitattributes | 2 + .gitignore | 3 ++ assets/icon.svg | 1 + assets/icon.svg.import | 37 ++++++++++++++++++ assets/sprites/coin.png | Bin 0 -> 500 bytes assets/sprites/coin.png.import | 34 ++++++++++++++++ assets/sprites/fruit.png | Bin 0 -> 1457 bytes assets/sprites/fruit.png.import | 34 ++++++++++++++++ assets/sprites/knight.png | Bin 0 -> 6065 bytes assets/sprites/knight.png.import | 34 ++++++++++++++++ assets/sprites/platforms.png | Bin 0 -> 1211 bytes assets/sprites/platforms.png.import | 34 ++++++++++++++++ assets/sprites/slime_green.png | Bin 0 -> 908 bytes assets/sprites/slime_green.png.import | 34 ++++++++++++++++ assets/sprites/slime_purple.png | Bin 0 -> 1030 bytes assets/sprites/slime_purple.png.import | 34 ++++++++++++++++ assets/sprites/world_tileset.png | Bin 0 -> 15603 bytes assets/sprites/world_tileset.png.import | 34 ++++++++++++++++ project.godot | 25 ++++++++++++ scenes/killzone.tscn | 8 ++++ scenes/level.tscn | 27 +++++++++++++ scenes/level.tscn4204592114.tmp | 15 ++++++++ scenes/level.tscn4212059997.tmp | 15 ++++++++ scenes/platform.gd | 11 ++++++ scenes/platform.gd.uid | 1 + scenes/platform.tscn | 22 +++++++++++ scenes/player.tscn | 18 +++++++++ scripts/killzone.gd | 15 ++++++++ scripts/killzone.gd.uid | 1 + scripts/platform_handler.gd | 49 ++++++++++++++++++++++++ scripts/platform_handler.gd.uid | 1 + scripts/player.gd | 33 ++++++++++++++++ scripts/player.gd.uid | 1 + 34 files changed, 527 insertions(+) create mode 100644 .editorconfig create mode 100644 .gitattributes create mode 100644 .gitignore create mode 100644 assets/icon.svg create mode 100644 assets/icon.svg.import create mode 100644 assets/sprites/coin.png create mode 100644 assets/sprites/coin.png.import create mode 100644 assets/sprites/fruit.png create mode 100644 assets/sprites/fruit.png.import create mode 100644 assets/sprites/knight.png create mode 100644 assets/sprites/knight.png.import create mode 100644 assets/sprites/platforms.png create mode 100644 assets/sprites/platforms.png.import create mode 100644 assets/sprites/slime_green.png create mode 100644 assets/sprites/slime_green.png.import create mode 100644 assets/sprites/slime_purple.png create mode 100644 assets/sprites/slime_purple.png.import create mode 100644 assets/sprites/world_tileset.png create mode 100644 assets/sprites/world_tileset.png.import create mode 100644 project.godot create mode 100644 scenes/killzone.tscn create mode 100644 scenes/level.tscn create mode 100644 scenes/level.tscn4204592114.tmp create mode 100644 scenes/level.tscn4212059997.tmp create mode 100644 scenes/platform.gd create mode 100644 scenes/platform.gd.uid create mode 100644 scenes/platform.tscn create mode 100644 scenes/player.tscn create mode 100644 scripts/killzone.gd create mode 100644 scripts/killzone.gd.uid create mode 100644 scripts/platform_handler.gd create mode 100644 scripts/platform_handler.gd.uid create mode 100644 scripts/player.gd create mode 100644 scripts/player.gd.uid diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..f28239b --- /dev/null +++ b/.editorconfig @@ -0,0 +1,4 @@ +root = true + +[*] +charset = utf-8 diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..8ad74f7 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,2 @@ +# Normalize EOL for all files that Git considers text files. +* text=auto eol=lf diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..0af181c --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +# Godot 4+ specific ignores +.godot/ +/android/ diff --git a/assets/icon.svg b/assets/icon.svg new file mode 100644 index 0000000..9d8b7fa --- /dev/null +++ b/assets/icon.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icon.svg.import b/assets/icon.svg.import new file mode 100644 index 0000000..67e75a6 --- /dev/null +++ b/assets/icon.svg.import @@ -0,0 +1,37 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://ddd236iwmyh0r" +path="res://.godot/imported/icon.svg-56083ea2a1f1a4f1e49773bdc6d7826c.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/icon.svg" +dest_files=["res://.godot/imported/icon.svg-56083ea2a1f1a4f1e49773bdc6d7826c.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 +svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/assets/sprites/coin.png b/assets/sprites/coin.png new file mode 100644 index 0000000000000000000000000000000000000000..01ae33d70b398db7f1f7bcafe883a0a469805201 GIT binary patch literal 500 zcmV^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-l0000D`!Gi=A#6wwk4@KB>OONfL(1x(+p$Hy?J)~fw5NaT32&8NkWkc3=_K^JJ zy!R%_Oq?eO@4IB?&CEal|IPo;%=_~!#uxx#JUk4a!GyAP6+yYe(G^v>M5i%HUXZ~S z0G3bK0D#C!^{VnnrV+>p5EXA1qQNYmu<=!Ppx#tcmLce2fFz&tR0{~FjT}Nw@v>+pZ&2NN}Iy}bnM?-l2 zXb7ppVPDncY{dy{hNZa8$KTC*HPTcJUQVcWuBZk z8il(5A@F#lA3)9M)ZsCbxr&ZVP9hnv;XxMQaCb);hK&a#1U&sv;zpC=3xGQREwe5{{0L6f)&fo>U&u{Y&)*lln- z?-Rbny@((m&}5<@AAleq5aa^@1o?or^8wj-5dbi;8M=A-fLwAI*?1AzcoDfIzawZ( z-nB5L)1Bp#!^r$nyZTbuUB`9g19Hh>RCo5!wJ?RQg(*~b_J{=Kd;rN{u^#2I)tx z5vSonwM|YE3SzrScrHT!{`MDGtcM%TVm)B79^M9ol!c2jbkHmmOhfiE#CLDtQh96Z z3=^9nK*5c(@uG)BjqyN>JA~gMVAU0^RkqG_mFMHgdo)9c&*O4`U(o1f$f}>+9;Fmu zO>Bl(HePfXu1g@`zxxA0J|M^k1o?m_69xGI1o?m<9{?c82eh3JSRY*m0L&e%-n@K3 zI3Z7Gd6nBG2h^{( zpjjxGhUXNRJ6L7wSoU;Gf4YykgH=Fb6}Db=B0A=MriezNaDCqg)C~o2xr(aBi{qkW zyR}VF-wQmU;1_)RK7j531YH6FFfzXG1;O_LgdiVa5J5hm$wWau06{(=$Oixj@&Rq< z1J+J!_pHU2A?kt^H!k@Qmn;ezhbr{YEH2iO{ zkRC)h`WXOtS?9k!k^w+s7&gZP;5mUU|cP9hmkjZGE%{0q|%NTctXK1_?8c#I{-nKK)6l?acqzeFi61vE4>eSaZL`000000 LNkvXXu0mjfl#Za_ literal 0 HcmV?d00001 diff --git a/assets/sprites/fruit.png.import b/assets/sprites/fruit.png.import new file mode 100644 index 0000000..e94263e --- /dev/null +++ b/assets/sprites/fruit.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cxef30sq7ss80" +path="res://.godot/imported/fruit.png-3735163b668af10c2b35b52cba81b68a.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/sprites/fruit.png" +dest_files=["res://.godot/imported/fruit.png-3735163b668af10c2b35b52cba81b68a.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/sprites/knight.png b/assets/sprites/knight.png new file mode 100644 index 0000000000000000000000000000000000000000..5b0eb4fb692ed58dc3fcabe2385b409882028ed1 GIT binary patch literal 6065 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 FKLBi4Mlk>Y literal 0 HcmV?d00001 diff --git a/assets/sprites/knight.png.import b/assets/sprites/knight.png.import new file mode 100644 index 0000000..f9ba3c8 --- /dev/null +++ b/assets/sprites/knight.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bhtcgxo1b0g5p" +path="res://.godot/imported/knight.png-7c67c83d34932624952797d9e971a644.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/sprites/knight.png" +dest_files=["res://.godot/imported/knight.png-7c67c83d34932624952797d9e971a644.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/sprites/platforms.png b/assets/sprites/platforms.png new file mode 100644 index 0000000000000000000000000000000000000000..9be41db977047749eee2a1b4d338b51f1cc1233f GIT binary patch literal 1211 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=oCO|{#S9GG!XV7ZFl&wk0|QI0 zr;B4q#hkaZ{C#3vWsci#zI()JX@SOtpiB`dp)y}#RvkH?1y`4dCr?;h&cAoYmg8AH zE9E}kX!gvnTGCRXC>S+KF6QMmHD2z_U*{(%1tlq|a+_)Pu;1IWPx9WOYGdj7JKk4I zrtRDR{=N0*+czuq4|kpWCT8RD$Wh|&j;e5u26pb#ex94+wDtddsnU74UH*?+Wn{~Z zs&I*a*G>q`_;cjZDt{lHb-!whWe!~Sa1zVUI{eA)q4FT z;-ou(2JbYvbL=L+dD(VV)b?*Qr|)D;Iwd{5$u-d`3s%V#BL4%ohKyRZsk}qcT^asz~IV=By4k zyx)88(9!#>i`1_#{C98qd&Z-eoR_P-taZ2~>>*_u-;nbxGxz#}ZQ=e=4OCIV1P1oS1K1=0`iZATw1+9xAO9R zR&ZJ$dEG+pE=efpPuC?m+g_>zkKG96EphO!jxi!msNL{;Zv-Xz(-J z+rQ?~txLlD^ZS@9q&!bN^39F7r%~flul^(5;lhy^AJgLuc6Q&QAc;R_pSRt9lY_gN zt;;W;zkHi@-I2YY&RRmF_w2pZ=iW0uV~_;e>j(7)TC|K%@y7TJWrs--17qeTsRD5g z!(g=zZP^CRNrf+-+NH@KR$Td0s&mngVw3+xu0?EXcCBM}?K8i`C}Wk?V1NhZ=gNnL znwH6IezGFZ!~9a6?RHUyhPV4>Uu{?_FnfW>zS{qPKK*<4uVTZ$ce_63>1Q2~5psEW zx_|#J@#X97|9=sRdr@7gG^K>%S{q!=tk;zc{umA757CW^gF~?Y* zzL@Q4_FeSScBuyG05^_0b=8H-_E|RV`0{(oCG+JLF?=tr`x)+BFt>laYl`#E_4#US z^)8yV;ydQc)Lt=IzWv`O|NWa{=kBflzObA3)w^Aa^ZVqko^^cn|Ic5O3*}M*OaJxH zkT2-?mBRcbPJn+~%B^6jY(87p9(Mo#>Q7(h~rm&XFcnS2%Pu(#j4I<=R1EbeZ((y;O5o?wIy5Q|G$2J-k$H; z`tsE}e}z7FZ&xe&&T>;Ie$t&EuHB#RoL~6BudegQ(e6(xj^8Zaa&Il$W#4ySE~~5m zTfmt7%O>)U?6I5hEH)mc^Zy7i2AYE5_cS8+Pd zEL*XBwVBru|99M6hFkZ|y>aAN9DmO}@fM%8>yNRi-8VbG`yY1_&*gmzOfw=rUyaF+ zc6a>UWOJqT@=>+Yz0nhwE57CCn(*tmRI)?YzOxPXujg|0Ui|Qj8JN8oJYD@<);T3K F0RY5^vzq__ literal 0 HcmV?d00001 diff --git a/assets/sprites/slime_green.png.import b/assets/sprites/slime_green.png.import new file mode 100644 index 0000000..00d71b1 --- /dev/null +++ b/assets/sprites/slime_green.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bk0e7mjynbqvp" +path="res://.godot/imported/slime_green.png-f6349164bf3a0f5189bb927b97af9c58.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/sprites/slime_green.png" +dest_files=["res://.godot/imported/slime_green.png-f6349164bf3a0f5189bb927b97af9c58.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/sprites/slime_purple.png b/assets/sprites/slime_purple.png new file mode 100644 index 0000000000000000000000000000000000000000..76f564e1d18d3f4b59c032ee8233ebf4665af431 GIT binary patch literal 1030 zcmeAS@N?(olHy`uVBq!ia0vp^2|(<@!3HEb(?2AGr~;43Vg?3oVGw3ym^DX&fq{94 zr;B4q#hkZu_UB)A5IH_yFgSBs)oT$}vmn=*zw9@ptqPdBe?d}nV{fk>$4CBvg?)Ed z_vO50>IiWPSm-r%m!<3^wh~P~_4RS~ zpI=Gub+-QhIeq%h`RaxX{5TJNc>dLzfkEQSwe9u4|AzdIT*^2{!A86~-QWe|7ymwB zC>Ti{|81}_`+UPPl@+TN=sEg&On58UrMgnvLQXF0_ys@bQ1@EdnLWo=s>t&5b6*sD zcFMcwU?tm(D_Xg)W-Wc$-E!h}Crjk()1K3gUwWA?xq;Wdw18cHo3k~Zx-$Fb`AU$*-@DD zmGPf?jG6V$dCTQj>{2>(Zt>F0fcfj}50vb4xa*Xko3|y%e%9UPUyOMTg5ncDvEEv- z-pIj{ckVgygWdnMA2Z(bzqjb#^{`seQ^pPQ$9_6a&90O2#S*<mC1;UMyZZkxfN& z@uKHWkGnrH91Z`H^EmwCk41a3FUGWg-!^5J_|wx1K5Uz!#D3x7Zw}ELVrNTt9P8IR z_1(WOXsY%rc>^6i*W&vj&+HC_UuW8s@vbNLPX_a-TL68tckKS8|ZiuMSA|XMHAR*BS5_Oaygdw8$ z7J|`6H+YZV^L)=*-@CqNt?!RB=j>DNz0cYEy6@{Q6Q_S)lah>;3;+PiyISfG0006W zLI4sXaA)pQnOIF7mFp79ww+PgRwqr#^h+tmIdwjMTbcOXbSx@lsmT=&zERs_Jm8q7?pD z^~;R(7St){cg8-mo4QB2Pj#9H8$Z$m;-9OSUDqCm*64keI>)7>7n(Iae$0Q`Y@R^h z+$*X)`8YjtO8SO3#HuClYs1dbZ0(Oprmm2h@Zy?Q09EyyPUnk=##yJ{nN@fQ_4-L= z&rb6MHT#5%wC6u{TVL(m14=(O_rsQ2h1tV1wDE*<$!FJ(bs@p+TgR_nZlALrY-qQa z+EE3%uDc90ejI9aA4XVFa(xR(R#+f#cBbMmne~tGA73zOt>1s&G7;1_l65n@Mxmmt zQ-12tbjaDyt<(DRJ5u5HJUe>X`U-6!2S1O0*BkenJ2g41TPXN`AjQ1ZXP1%-8JHa1 z7d%LQ=UF4m{QUIbQmk*^tKb5^^0)iG>-*%|=V?kFQ1K^k7W=q71A9jI!zKT+`gR<< zYb;(QB(&`RyJKQFGx~6Hd{X8123vJsbbVsyT(eRI_+E`$GZ(_8Du+o~C8KUl-=9sX zU%TWa%0Vx;+> z2H9q6fLS)IVm}l775~(4g)5TtJ9o*p93bb}*_t-D4Oa2mu-lk6e;#2gXx1f~c`OWg z8*I%Sa{|`g+ft>Y>Swi&MNDhQA0;Q*TzHfGu)>DQUH^4d8DF+F-f>P0>A2JMZ}{je zsll#lKXa_A`U=*4!oFCuYvP0v$#)LESXGmi;S5uCUAP_nv0kS+3~&k!qMgvt^*N^` zi+35#Jz}c{g`EA4X9Q56Gb~-21ZLc);?tEVYlEKt+8A?W@jJM434cTDLDW`` z;TXL-ZPlI=s^AW;pb9ON&G z`iQ6ALWD19jn2IHgk|WVw*HNO2htU^cTxC8(k%CfZv&z4^W z)kG?IP2Y7i?Yf+V=r$inIqG%udbwvKDlkC#R(Y@WQt6G#CP!}1T(6yB0Ciw?u~DSG z7@P-UFUeOw7!YD%ptnp23L4~_pStA{Ic}5q;f?Ln^V3$=*o0F?@+&&C92q|A?62@< zhlu(XbE_-jAmVfY1n(Thz3op& zgR+M=w#8?7T75fmiJ41ik(e~-5(Y0h&<(hXvHn2@Tzht_g~1)5BSMHw?dIU*Npt)b zojgz!NRw~NN|QU&w`P4ysJ8$6>d_}-SN399BZNflv^2byG*c0psa`M-tTS%A|L69M zMqDZ?1H$|3py7HY^X#ZG5yhvBkTb2Hi>=8Y5->QhakOW!~{|%dt#| zQ7C8TG1IWo`)5=9X%P8fXTMM&+|u>deW{DQ`Y-tVO?wZlUj$HEKIW=m0Wb=lh%7@p zV+IqazgACgh#h|XsqEH^l1#1Y4Xz4m@1#z@KT)Z3t0BYvcFY}t2mXP2k32z5_c1!+ zP|wy_wKP}1tX>50&d|TgQiP86=(4yw(9za z4+D0BN%DZ@MxKvKh3nCuM}AcQIo_B#&S^h0e*c`Qp=gRa%d*t_+r<~(?I%ocisyca zUO#Nt7Jei@b-_mklfEWE?Nye)TVc;5$EBaVGhUmw%h;Q)9c+);oETaM4=2|G;(!un zrF$mlW9{Lo2R*3in!?d!B?6NfhZrr&Hadf(mn&q|(!RVWeQ=$atKRrAItI66ZyA{( zaSjgh#yS1VM%%*IEX48#)}Gz*)9K>$aXGPT$eI=6NkK(8E}O4#7f_bels6D+cfSu^pa;Z1CrS6 zc)`4~tn}Pnm!r8Eo*#3Sc{1~6iCFGzKxF6Nt1w{oBzQ9EbduWYPhUWou5n1S74P<= z>4sYSkGVvMF9%_F2IzuNq~0P_kn%o z;Mi0o$arjmO*sLV*|Di7*~5kO!C6VdhxmltCIU*43nfAg)Cls5e~@>GzwKvaF0sBM zkjBsvGSBT@B-V-!|9u0mBN+*jq@J@Qp1(8RX$qfr?eZ(X^BXDy!~6Du;8Ltxcl%Ymc4{@%1%jbHP_tdCXZJLylBq1WC45`p{JRO{`c#)q7Ln)?;th#CW1en^U zbL0I&e@7V*lK`$CU64ybTk%g5XSCwQK zi}BaU#bG2(xYaqi&(I4_BC}1OFulW!;xR?w(P{`Cl~{LVEXbYQrI@SuH6E?H0m;U8 zs_K`75IiFW2tSoYbqQA?@`N4ErX0lWv|pACj05a)puHTMNjthGui-1Tj%Qmz!6qda-a8BDMB?O%xJ`p|!w&;4_scZvszI@@8C5DDCdCFbNP z^Wx8OvAY6Hoh8C9^3ateHhwT)oP0;-LfBFC>oNt6J^U5vOgT3~$Z7SvZiCm467-}G zQLH5NCw$9+WOpPzm&9Lnau*^(z+`uzdXWsj9-4K3LM$tsw_y#)hz=7lub?Un6UL@)LJ{m7pX?+Cwp z}%V~$>%E9OzEy+|l0Vk0pG@ow%lPhs|cm~$6WFX zlF+PB3>*VhY%#>S6ZE-lrOzBQ$o@46Y391uh?&R>gHNtT=%X1-H& zH{ibDS`|GakY8%yTeZct#Q1KX^FU|qZKYb5;EGA_mgtTfG~Kv~%#Ds(GQ|4X@px!6 z=WK)T=PV`O|7i`8MY@?F)J9J6)u$m!&Cd!M;o}v^Xq~TwjSw0!)tY4V*0l4L+p;19 z+46ihxPa4b>JelST_iBL46|OZB)a{E1|BQQ1(+qv(0qwPAdfp*n zUcVr*G|MoW)*wh;)5X`wIl0fVLR=`45po*bnWGf+RP{AA625*V_TaplCE^UxLp=9L z&q!1XUc!W!IK?`^N3xljmsi5L-fvy}NcA75oWQn}dCNKRs~X18eDw2h^N{Glo+;m7 zH?cYK8@y=a&Y%;8!9x4kAl2)%NfLAu$@rNN1|9I)c!>e270g1A3;aVBLIqTdJi-C*s z+CHmWCl^16D09``aXJ^`Atc=}#5A@%avIAei^fFt(0*E_oxgtRQMsywn>xpBg+Q$u z3I47s=is%!aq3bGqsBm6GO9H#q6H(oU~;Ng0^Lq%P^8xdbuAw^1UCS z@BfkAr^rsW*0m4@-nw$ucRf=6mmbLSh8oj;w#?TS0@OXaH9E_rm!P@)6T}ye^d@x; zV~t8vE|X>W?&(;=_s$@8`O}mE(8bf{;s_i3Wd%X;q5&oGsO5-;vMY#wK}`I!p<)@6 z?M@YT9Futf6(GumN#3Ndt()NMS98CEn;al7Idb&8&^j{lio9|9^Q|j@N!3GzTLJ@& zLVP`fm^#5#MYj~%*_r>+`*q0;c9H_qlGIuqr{r)gd-b9aAReFf<+OJ{1W4*b);($w zq*!mNIZ+bH@&8m9o2TV@u&4FWN^xzlJBIL~w z;<=_{t}x~BPLchp6&%Csn|Gp#*52dePrf>w0!;B#lm{sc0v1!QK;2qk?Fn@}kwasbsMViJ@e0&GC9Gc>Y zh!DX)_q`_@I0&L4;TR|)Sx+_Z~W*1wSSfvcP6#9BmOu9nkW8b z@H#MSxdQ9;(VNV{7gr&SnWyk5g;JB+QC69yQSwB$ljD!^FbM1Dx~m5IeaC zFbp+u|$+VMocuYv5V$%BEg7W@HaG-9IkL3<9=x8asv&7m6!^g%ynJo9 zx2a1oA(g{Z`H@NiFXhM@O5NrOXUPQ6+}+=N7RGlBkKA0LPSZoguhZL1688}!(cxi- zdPBdP^LLC?`lMN+TbCi*C;VP!uTtN44Q^WhOOzMeV%c!NwYg3%Us05$diw9Vz(?_y z+rrwQy_T2kz|7Q~Dhl3l1{FO~jvRnSw~!Pzd6gH%uVAqoV})O~qWzj{{lkyhP2$PO zp*8ugpNd1vx&Yw79$D>d*<7fhw)O8d?xQRO>7S#1tHS*n8n_5>lxq$+#{DhmdBXck zWl*|rKqI&E`xU1o>U>s9&bb)?xgq&B(e;qU@#QQ}W9cCNN3X}^RZ;rTO@Rvxqp1f` zvl|#B3(^ZoQX|69g&*SX$UmNOX!@)0cqaN&;4u&HoH!!n^i$vtzREpWR>_lIrQxBT zbeyJH;3Yx+=JU6$AT(mSk!-}PV&O7qb4;)KxIA!IFiE|=7q*}=H>x5NWSmrI;lD>< z8LKyHoG_3HkN!ns4R%`l^HEqegKp#RGQANRt)OtZ^4n}l^ne*6MGK5l5k<(*P~3*` zxRi?{sCI@rIC0B`H><#j-oEvcCXkw^6;{ClA3<&xvMYrX&6snd(}dW6a~T;~6tkMu zjXYT&dHk8y`iI`XF?%g&wHp^^leI=u)@~O!5iAesR=eHEcc1Qi{N`lBfONU;O$Pm% z3}zZDJs@d%EcLQH-*zhLMn$^HUTgju{e6N6C^#?F&6B}hS%@(gePb$a zW_Ia{RrS)fUm*l{0FyQv+Imwta73my=-1JtL}QwDu_n%0sB4Ltp>33WQh9V|3G$5@ z-izv<>y?N3v?1u5vs3|;Tt@lr`IK{T_*Rb#zql~edX&D{u@MH2LlRx6Fo~J`J9~Cg zT;Y?u&}g0JX-TMzc8(7-L>x~eiYIFe+EBa?M)w|g@9v-MtzA>xtZ9mt0KRyuBo`4= zPbyCuB%a#)P0uMo#Wbicgz$^1hv#2x!9QP1eqO;eoO8hkOQ z+VHXXNYXW@?xZ>wgKu(NUfwll1y1xkOMX_El%I8G<)(js1$C4L3SmXvwn~DZZJ7|E zaNnIpQ9nv!sE5LSR4pfoTh~p82&dm*n$fJc4i3vCx89lKW_}Tj*Y&+k&^_Ix1~9C2 zPaBOAB1!WV+KB>MN^uN(*dNEuxhB>Jms2me24G_ zu6<)gPc{q|YyL7)jZpOy)5d)^NHq2m5DP#A^sBoZjy_|(d^zO)N%9VOe8=d`H4I;u z5+!A$&H{gRsHlw;;Nj8iHf6cz=E+_b+ph#;4Bq6bUAgOM!6m>{A^ zdBAo!?9{Q`r{=rlIxLrSy0_L^bqhQ5+{Z`XP)ybdRY+rD+LVi{QH}MdLZoC;5p0#I zfPmR&r_UNhv-!9S$B>sxtZz^*scN6FA)b4QB&7?{ln!0_l5dj}wG0hnpL|>H@o`GQkjLKc(N1aL$qpAir z5i&W{nNQWy#*YqwuSf0kngkv@vq(XZw6)|M*cWqNi0j@{um3m98d843_&L>j>*q&B z+fKdAxg$v+OqSr39WXB55e?vv0mF)g6?A&>mtJf7#;gc0Jg4-ys$DNC)2kO17T|k) z-QL`Oq4iyucwlQgr90C>X3A*JYu`f|S{}}y+(F~KsLV(sd5ia1l^!Fm3cTOW|amT<|AaDnJ zql61ChT|tvPZP-NC${dT>R@9uVy!giVLS%f;*Up%n%x2^2-y*n>@d)6E8(sR0k+?= zZm7#Z-{nxFm`YcbPMxI2X)wLEed>5pGyhunyQ~4ecSXApk{@C>v2kwj*rzM7xgQ(* zrcoPsN>l2&&iKLR9LH7rGSxH|K7KBsMMA6Qj=Zs!gEC;bjk+LC*~NhzuD!f4)O6T) zJp>R0KpPEgC_uE9s)|(W%z^QHpO#=Gb1rP!>vb>42=gyfcFjF}NkCNif%1@VMUa`> z#{g6mb`KAkGLc{%{U?hWh)SA2U_e zKN5~$t;}Q~ePgoCTLB(u{!s(O0wK5K2641gdEe(IF zx$lwt;}*k>WNhk4*(_hhZ66|W&o@>)-8{Vcp6^_Dxp6KZaXVsY$Bv7xeDX}D&sA+) z$uJ{nS*okUAU-6xMFXQJRIxDDs@PM$q~XI}~`E7QB1sHv%z1 zr(;jXYuyv2rytlx1?JjMmeZO-d5q4gqH+~qk(us4MBrqIZda(dODlt{??UuXap^9^|*d1TiThE;t7 z(tn#JneZIK@?6m6+%RI zl;0z1BMWzZNbtLsM6!NQ-0bSON@m6i0~GKel=KbTro^FpzS4G!h`?wLek!xy#ggzn z#)=hr-ceN=@G(-c$$I5@AUp|coem%VhVIdc$UqtiQDGGG$9ADdZ&3%+T$rPZ;Y$9a zWrY_-tgK85aXB-vg+SD04}~1W*6U4u>35>@!-fZV$0nYVrT=9lO$2I;di0aEc z41lq79BImpU43W|_xbAVcEIFtug$1*g}SM5$Oe8dXT034y>{Ogeyn;km(Z%Bn7-<1O_ZhssVG0VE|%^auT z4MVOU%I*y5N50o7@Rti4ahQfFJ^Gb!WZDgKD>>14*uc?qMHEKwV7_8x;?CwXFl^|C zNEQ-#msDfU$fU>u39{I88)c8CXz>Odemb$QzxRCI@+nDtNnzyHth|2#(?GieKmq)% zBRXi^lH;lvz8JwMADzv>47)}g`klM_tipcx(Fp;Qu7eVEEgR>Aer~5KdVeZR&_Kt6 zv*S%p5(O|yxR*lWoL%Qq`u-7ZBrBvm0{QgD2rPw?bnLF~IcF1V1UCAm8uqy?wsUCZ z*>3B7c7+-mOiYq*5{qS|Cux$+7DRIz-kCj=L@YU1wW=g})oi7RGNNl$MK_u!8_s^2 zJ)RHklITXCtkDRbX5ze`GebZRdXDS-ao#Y65mu~Tvs?oeEfF{WdVNK6Uyqer*-Fvb zArU{u*24(&0)0*MAvQ0-SZ7-4ij$S(q_o*pj!JM|8SwPo>e=b#FWB9 zLWwC$+{y=YtZ)7O#fk+NTLvV-c&nS|I)$EV}bW}ouS?zF6JY`>lnrLOlqTqAD;-nbBCtH1P&>-j(mFPMjsir z0uJrKtV4GOo}b9t21b0$czL!5fX5|2eLkTQErT=`+~CD1Tb@x< z6K<8Y;A}LRB?R3XE%3K4lS9J?{lpoz&X%;6Ig5>6G&|K_Yo4t-Qhy?y0p4!-{xx0w zz8lwd>y|*?kvV{BtfPEIkLnO!OT427pE>HtkXVeKcM8n%sYTyToGg24B{R3xj>E%p zcZGg=Qf~0-U@Gk$$#vn^WA2xXjgNk@1qwXE!Q|efEH)Kawf(KF%e4N~@tjZ5W;^)? z4I-A71n(4}%l?>%uQ4q1w^+sOfn_?R_ujI{H@Dc__$TnGMAW38{eIIQTP#a;Fwm@` zQr%u#I&2&qMzZbSx3&G^=j|wLyE`1xCEmIk*XLhI_3~)BULwb1fxOA z#$L7>9g!9E7O0r_+hOuwxZ~YEpt$)ke=cq@&yX(-OyuDif;kdlwt{Kt{tM2 zD^6Gz$ZVAR))hImT+;g^Y=Cktddln3c3h<#;LuxM6CuRTcm7*fNyqXi#3zNayekc* z(@5fg|E8CCK6-v7VBYe&Y~VbeE&L1J@~bGsC!Hhs8$pVQV%qKB+M0ti!a-HyLG>R` ziP{E0h2JfE046V)L^q9JUgoDAmyF!c+TyKV(+YuE{mI2P*+xqg*w-%);sbp~Z9-K6 zV>W-D0Fqj?I!21?J65xFVG_R7lmV*#sCEubON>QPyxR^KJFpy#&>Va??b~P)X~-kUsy^iPqtXW+I<(g(Eo38WxCw29K;{lk^=`;Ys> z&p)d)#!e~1Ygd>)p8Mcw)Jg9iO-02=@d1KiCu}9Bom3xbwGK6MpIWJy#Z3SynAWXH zu|NkEum(wO<@eA)#Y$QME9A*&XBnkDn0&tf_oG`>pax>jof%{Oy5-RmkBbKhx??=4 z)m=SS!Vm^@_*jc-8i%?wpmTrDDKjJamE%Gn!K`d8BY=HKkfG@f-3~RI%9sPm1IoBE z`d0YzjzUB;{VNPeJ*N*VGZQV|Tqy{aRR%wff1V`ZFw_{5g#n+A`Eb|~d^VN~kvAX2 zNz-=Sx2{J*&Y(#GX4VLTbLyKuwPzWk_zrNXod z(}+9NkY19ZIx6|BFtRD|KJbr6uYa(IRz~Ch~ z$nKU(Z9>SjU0S?6a9gs{K{)>xCa>NND<&-bR-Eh#y~fYAOkYoVuJC}lS!ZmE5oQI3 z@_o~xSW(7)BY`5sYuN_COvbVYVnAi83&nuXEA7+^t_CvG>_s7$daUC$=C(eb` zyd!ZE_L0oGgG-tVW%YoOxZ>iaZD*j^k6$$p+1T6kb$i|)KA`BcI{P$;FUr6@&UN$?&&6DR2pG-2r1kG0Kjoe0HnC!F z*5m<6>xQ#)TqzKC;OTZdMQC#!OrXxiTrResZ}qL;VD6Y&=?uMQh45H-1I`_ARHm3N z)7AT7xZ{#v#3?_)RbWVjGJZeH+2b4h24i#$ZK#2GxBxtey+*IBx=gB;;&%*4?w^dm zbfd!1_6rAYYyqi}2o8;jJ(k#fN6w`o@A#g-Qmk8pa^YN}0iX?9l*?meNx zlpOzl>NalV%)uok!g+|{wCxpWIZ#Bz{d=|u8iFZ0rmS3Et<#FArm!+Bq&ppw7&SK- z8k}mi14E_KDBhIYNQqY&F9_1K&h&~!JN~M;xlSC*_999y0}i>JUiB@x z;W{e;hA#H+khnOeA3D?;m{hiulqKlbRU``^+7Mg-p6_kQnUfJx_CKsbQ2ec;Q0pTzfQ4P%A zD^?u`c)%bG^Eyv8Jz(6&z(Rb1xL$zPc@xt|ax@)FFY~WCtd@rZ`b{Z%lCth>>8rN* zyVwQbl>`@pzGYQvwTIY=jS6&SC5g*>(r4aF}v+IVixe5t`f4c%!!X*Z6YcWL1vDU~M9l#Ef9Y7@`BE|q|w zJE*`pQP;VURUO#Ba71dtgXgAxHsK=7S@ftduwh^!$^_7;Dx(ar${r(@f$!bJP%Ckt ze(XJ1fyqN?Sb?BFa^b($d7Dfn#*(;yCu*{2$5#Py;OtuesZJIa+x|0l3UnyJ{f&@d z(Eq+-AduG;a;jQmto%;@c8XmW1gu7(nWcM4^dSLDP23-Rt+NaMpAd@wA2N%OFnPo{ znOi?dLk(XhjW+!kJ6nNW(zN4cMOUae_y3!l@osX+$3XvGeE=G#J}pXQ)gAPP0zen~ zB@$)Ai;Pu4IU?D)VIkk2Dz;N4A$|F$4ziiD*kQ)s!lku!tU7Q zvuY(SAi4Kuiy9%a3Ghe@tUWOJ3oAN5d%w4#4Bo5R%?o)@V4=Z zz~|+68I&v^>_P_ir|7~0#<5)9%78(3!!?DRIITk(8pHmrYjbx(PEwAlA>oxJtp}C@ zdlk6$JUj&6HTOd<Yi&l%8+l#b?yCgr*7DU*}S!LGkw2{8yG((DCBTJkakoF zZe)~S!i8)q#E`d`jG%^MUK7)WGk^k>o{R2I{r31sUw1~h+f9tvIIcV2<_3_bFL)!! zHS@L;IaqFq{NDzA^&f)cGmFih9s z1we6O-UKOn+XwhAvz)eU{vG)bR{bX;1MEOUjiD^DwM<1hR4W)U{x&Q90xUwg;moQj zLyRHM;rAa`{v#$I3l>DWU+Y&tTomL@v7^H1QM=V9;u682Fyv`mvzJ!*q-zd1gj^@Q z>Us9>dH8$nfzI3fVOK{;qTVyx2?9+?E2g|D>%Ksq7P1RIm(3q|w47eJohC6F;2p|A zkJ@2>df@goFNzCwdb4@$M0&D3o;PJ$ieLP*$pG74=Jc*OhF0T@U}MHp zd$`N&S%li^MsV%aE(Ls)A9S7DGUc?sy0T50t&#>XsthMi&=0UhL~>JJ`81;@dfGSD1J=;xQHwPc3e zuN`(GGYrAxEYGQ+WSVw*#7T4$4b<|7_~P81(3FEeX0We*<5a;fXP4UJ(Mr^4wv;5& z-;t&ZH^`?;65)|^s4pUkS0(eKwIj2g?6uhA{?x?a_&qc z_S)_FtIw3m_u(o3M!ID(E^&ACo=EG6m^{gW5)G5bu`53qdm1?4e3_zd2}{1tVbb@z z&|*^icZ6wSOQ;3~*bB$yCO37~XoT^A+-D}52^QDHq9MK~BwrH~+15tU1PEt?YkglZ zGnks1cosglO_R6Tcb4~po&6s>vR+-UK#LFs##Q3Jb9^meVuEa~4Fy{g^2~t{wyQ?B zX*gRHAd!Dzxiw*&vRoMOn{5*;h74LtN8<6Lc5=Vvf%1KOZ=mYHqY@wIcZ|W&uWV;i zqh=|!Mro&>x4s!tC?)gw4v;(|n6snG&j`@AuW~HdR%BZ~P@=0uG;BkG^5YyKXI5Ub zVz-RgFfn9{0;9Xu%nsc&7~2}L==z9$zr+s{Ti=)1K1^g#uVdo}Pei~H#rT)`Rf-~l ziASIO&aty+X^RApWz|?GDLOztnll?xxmLlc{`wYtJOmD~9|J{HS=5M8N@S-f>{F)6 za)2KA+vs^$sD_zWW!VAo`Sbk@_IBS#BeYE7UY{1jIGbdvVuW8wm zI1MEH&D_3SkEgY}rQivM>K)b45+502yi}eXeHdQs>1k($tPNiZ;S5~&12F&Yr0tX& z0~cqvjg!TMsa@fAPgc+~3~bU!lMKfF{W_(MiSv_5&S(+$K>gqElMz`zkGV17)E>l$ zq!7Y#3ASXkYIhy45luIjP|hv|Fe5tR8P5`(><&mEXi(j zheei4wTv3#GXv;^EvM<@%v$Kl`7!0^d!8SZFPOsj-gHv}h|Sisxe;ZS_6S5lFsan^ z5`hMp#_1%VN}-mL6apW=rx6Wxl~(oc)y%ETr$lu|I8lhPjSA+6>Nk>@vq5f608Va2 zQEPWPz!WrS2B5m^?tpYAy9OJOC=fGP4A8zx_|Wk#(y2Tm-jGkIkLW8g4K2fU0%%s| z2ewb$pBz5myh_Gc7PgvvG%DQV2DWn&D|wm?N{|~% zb51ZCx(P%_3>jC}gLp2Lp*I$$kIsKJHK^^7G z6LXNUOESodIC7C39>&<8dX_&606veABh?v6nWe#R6ihtS zR1{bSE%O!9?cH{Osls(+ZXoN)1`Z7>U9aEj=k>)k)f0$En-wn;&TKyL|Uu{@lJz|vO!ebO(aUF=49E0 z{H)&X!9M#o4G)bEz81W@*c)o+-xm%%H0I~(pADQ&RbOre%hzj1x6}fE0I!W>OPgiM zSasQBh!OO1t`sNA6HddE&vKe_bf!uqR?SC+N(C>^Q1W9^VcUlLZDSxv3 zt6U{w(ft=_q=MPmZX14|2U)4C4TH+>xq7M_yYOy6nq@Nr$)ks&Krt~{Es^Rs>|3?` ztZC||N5Hmmf4zthlfKYh>=m!9jm1P@tF1w|mftKYs0z!KPK-&&hKsThUH(C#&us3_ zeP{+H41AaBKuBZv-MK0omcbAE*1~mz)xXP*H;$AXCuXkwS=WER8AyO+gF^ zt8N<*8{`{Cmy&+IDnF_5Ckvm3`nsptH7=VslZ}QKd{nvFUrW3Hm%xX(aW?3UgE&e5 zx{mVSmq7(3H)hDAK*#n2o;0czcM|k&;C{a+vBT(2*N^5Wr9VAgjHJS&udgy;by{s%r90&Gr?vBkF9-PwGUQws8i@4EeLz}m2tq9=3h z#uqrCa}7E`gdi#oe)C4t9bTj<_i}IIs=pgQm&v6#ZcyC*8lT6LdxMB6iH+QS z%SXz&-1WgW(}6?MLk{pgOVrfmJz{R<_LeZrXmz01gtM zrU`W*k+i`_b8i%&HQHa{IgtXbtdMsDLrQYF3Y7z#NTOFBJL}n~@6Tlcmgt@zdM{4P z>FSwybLk#mSAPq-c5D-X9gQWtYz2@u$fHDQq_wZ!#gN?96spvqCvpdPc;fY+g!NfP zSzZ}XkCO$s<8Hn-v4?*>k}=4qL~6aFy(c0GeN4!-%N2yERoNSVl;(TeW4J6y(Oz*@ zKxWikJ{kh3_T*inLKajYue4n~ey){`>!I{g3gOiS!5o(n67{ddxr0mM4`84Hb+GCR z49dYrl`kr)PC2C4<8Fm=U>S6V{K`ov3qFDZ%Z`3M`})BX!BUy$Z>0tYYc< z^m<|J^#dDTx%>fqwxHK4*XY84O4*zA;<2h?I@{=B8_*ke{vHnw!@yLT{mpXw$K`ji z8TKkS!gOEDD+2Gnnc7}j{j#8piS?fyeXP%ORupZ9Z+-K~EBy~X^-D{8FHeI4N`uZH zSbQSlAT7GfsPS`8&YU>?5_*{C7b;JiVlOdQv8&?YxeRwF2W1af9(C6= z#TP9Cgv~1hcxa}$2`3=tL-);%*~{(T=l=m8)!E|Xth)b(qqbHt<0lR;{gKlt>+;-vxT90pcnF@NTN z)QoPn2;BQ$fcW~e8oUW!beDhRI?9Dke|U1}f7v@uTnFZ5xKQ8%ifVm)WuPp~;X`n+ z?)C2D5WtQ4e45bu=-J6+{~-t2Q{hpks>EzLpyL^yIE(s1N;&&7eKx1}{67YqRaf>E zo(L7RA9FFz1pb4ogZlnvoYj2joSp?(uche1i?j_=f)5l#f)f4|n=Rb82Cv72k1;xk z2w%7lpQcWeqp6W>5Z$VufiMjDr0cs3AC>M}D1I`k#sFO0N$_7ZjiUH}_A0usml}yv z?pA0ZJxNCjpg4#f0$k#TA1IO0AAELdPRrw1-2q9G@?-FG6%7zw>a9IK>!?-zC%U!Z zP3r2j_ez4K<;^tnSyle@-HX*l6Bl`*= zxqE0D^Ywv@X@VuuA15E?&yb^va{~|!cAKT698ZNO4~}m35B>Qww;u2*7Y!}B%Rd3@ zMu3IHth!YOtUz#$2RR{Ks~yJTO%_e)&o%LT1bly2s{ z@t)#4k)W&NCoN!+u_gC_`ilYBWoOw2-ctQV-%Q84`-Gl)j75MBO)AL!zncH(sa1OW zK$_%XJki}=BWW2K>(v3~XsX1!y;8L8;w4;09Ek$g**Q^{7U@!uv(hCn2ENx|DSeD9s6I)Z^77aaSN{hAQCk0Fn-VpKUL?T=z-cgs)&`1IWtvWAN(GWOP#rtLE_EYF*8YE;ULshc r+yqDEDF02T%nxw>Ujlwz5Jylf_UZFh;K6?}19$J-S1-G59r=F% void: + pass # Replace with function body. + + +# Called every frame. 'delta' is the elapsed time since the previous frame. +func _process(delta: float) -> void: + pass diff --git a/scenes/platform.gd.uid b/scenes/platform.gd.uid new file mode 100644 index 0000000..d273deb --- /dev/null +++ b/scenes/platform.gd.uid @@ -0,0 +1 @@ +uid://7trtklxye7up diff --git a/scenes/platform.tscn b/scenes/platform.tscn new file mode 100644 index 0000000..ff43fe0 --- /dev/null +++ b/scenes/platform.tscn @@ -0,0 +1,22 @@ +[gd_scene load_steps=4 format=3 uid="uid://0851lly0y3wb"] + +[ext_resource type="Texture2D" uid="uid://bjl7pb5j1sf53" path="res://assets/sprites/platforms.png" id="1_ba0x2"] +[ext_resource type="Script" uid="uid://7trtklxye7up" path="res://scenes/platform.gd" id="1_nlgqw"] + +[sub_resource type="RectangleShape2D" id="RectangleShape2D_ba0x2"] +size = Vector2(32, 9.05475) + +[node name="Platform" type="AnimatableBody2D"] +scale = Vector2(2, 2) +script = ExtResource("1_nlgqw") + +[node name="Sprite2D" type="Sprite2D" parent="."] +position = Vector2(0, -4.5) +texture = ExtResource("1_ba0x2") +region_enabled = true +region_rect = Rect2(16, 0, 32, 9) + +[node name="CollisionShape2D" type="CollisionShape2D" parent="."] +position = Vector2(0, -4.44167) +shape = SubResource("RectangleShape2D_ba0x2") +one_way_collision = true diff --git a/scenes/player.tscn b/scenes/player.tscn new file mode 100644 index 0000000..b3fbc5b --- /dev/null +++ b/scenes/player.tscn @@ -0,0 +1,18 @@ +[gd_scene load_steps=4 format=3 uid="uid://07yvalnsoex7"] + +[ext_resource type="Texture2D" uid="uid://ddd236iwmyh0r" path="res://assets/icon.svg" id="1_3vyb7"] +[ext_resource type="Script" uid="uid://bgahsyy7gxau4" path="res://scripts/player.gd" id="1_g2els"] + +[sub_resource type="RectangleShape2D" id="RectangleShape2D_g2els"] +size = Vector2(128, 128) + +[node name="Player" type="CharacterBody2D"] +z_index = 5 +scale = Vector2(0.2, 0.2) +script = ExtResource("1_g2els") + +[node name="Sprite2D" type="Sprite2D" parent="."] +texture = ExtResource("1_3vyb7") + +[node name="CollisionShape2D" type="CollisionShape2D" parent="."] +shape = SubResource("RectangleShape2D_g2els") diff --git a/scripts/killzone.gd b/scripts/killzone.gd new file mode 100644 index 0000000..2b890ea --- /dev/null +++ b/scripts/killzone.gd @@ -0,0 +1,15 @@ +extends Area2D + + +# 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_body_entered(body: Node2D) -> void: + get_tree().reload_current_scene() diff --git a/scripts/killzone.gd.uid b/scripts/killzone.gd.uid new file mode 100644 index 0000000..891b00c --- /dev/null +++ b/scripts/killzone.gd.uid @@ -0,0 +1 @@ +uid://dlx37dl8br661 diff --git a/scripts/platform_handler.gd b/scripts/platform_handler.gd new file mode 100644 index 0000000..9d43aa8 --- /dev/null +++ b/scripts/platform_handler.gd @@ -0,0 +1,49 @@ +extends Node + +var rng = RandomNumberGenerator.new() +var PlatformScene := preload("res://scenes/platform.tscn") +var platforms := [] +var dead = false +@onready var height: float = get_viewport().size.y +@onready var width: float = get_viewport().size.x +@onready var player: CharacterBody2D = %Player +const N = 10 + +# Called when the node enters the scene tree for the first time. +func _ready() -> void: + for i in range(N): + var y = i * height / N + # TODO: don't place platforms where others exist already + place_platform(y) + + +# Called every frame. 'delta' is the elapsed time since the previous frame. +func _process(delta: float) -> void: + pass + +func _physics_process(delta: float) -> void: + var move = 0 + if player.position.y < height/2 and not dead: + move = height/2 - player.position.y + player.position.y = height/2 + elif player.position.y > height or dead: + dead = true + move = -40 + player.position.y -= 100/2.87 + + + + for platform in platforms: + platform.position.y += move + if platform.position.y > height + platform.get_node("Sprite2D").texture.get_height(): + platform.position = Vector2(rng.randf_range(0, width), 0) + + + + +func place_platform(y: float = 0) -> void: + var platform_instance = PlatformScene.instantiate() + var x = rng.randf_range(0, width) + platform_instance.position = Vector2(x, y) + add_child(platform_instance) + platforms.append(platform_instance) diff --git a/scripts/platform_handler.gd.uid b/scripts/platform_handler.gd.uid new file mode 100644 index 0000000..8f06cdb --- /dev/null +++ b/scripts/platform_handler.gd.uid @@ -0,0 +1 @@ +uid://bpuudy2mj7fjd diff --git a/scripts/player.gd b/scripts/player.gd new file mode 100644 index 0000000..c72f254 --- /dev/null +++ b/scripts/player.gd @@ -0,0 +1,33 @@ +extends CharacterBody2D + + +const SPEED = 300.0 +const JUMP_VELOCITY = -800.0 + +var width + +# Called when the node enters the scene tree for the first time. +func _ready() -> void: + width = get_viewport().size.x + velocity.y = JUMP_VELOCITY * 2 + +func _physics_process(delta: float) -> void: + # Add the gravity. + if not is_on_floor(): + velocity += get_gravity() * delta + else: + velocity.y = JUMP_VELOCITY + + # 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("ui_left", "ui_right") + if direction: + velocity.x = direction * SPEED + else: + velocity.x = move_toward(velocity.x, 0, SPEED) + + if position.x > width: + position.x -= width + elif position.x < 0: + position.x += width + move_and_slide() diff --git a/scripts/player.gd.uid b/scripts/player.gd.uid new file mode 100644 index 0000000..dddccad --- /dev/null +++ b/scripts/player.gd.uid @@ -0,0 +1 @@ +uid://bgahsyy7gxau4