From a259079c8cf9fd55f935159133cd8c973ea7c134 Mon Sep 17 00:00:00 2001 From: "SLAPTOP\\marvi" Date: Wed, 4 Jun 2025 18:25:54 +0200 Subject: [PATCH] Basic Projektdateien --- sidescroller/.editorconfig | 4 + sidescroller/.gitattributes | 2 + sidescroller/.gitignore | 3 + .../assets/textures/360x360 idle 4.png | Bin 0 -> 24069 bytes .../assets/textures/360x360 idle 4.png.import | 34 ++ .../textures/Player Crouch-Idle 144x144.png | Bin 0 -> 2468 bytes .../Player Crouch-Idle 144x144.png.import | 34 ++ .../assets/textures/Player Idle 144x144.png | Bin 0 -> 3168 bytes .../textures/Player Idle 144x144.png.import | 34 ++ .../textures/player air spin 144x144.png | Bin 0 -> 3861 bytes .../player air spin 144x144.png.import | 34 ++ .../textures/player crouch-walk 144x144.png | Bin 0 -> 3723 bytes .../player crouch-walk 144x144.png.import | 34 ++ .../assets/textures/player fall 144x144.png | Bin 0 -> 1120 bytes .../textures/player fall 144x144.png.import | 34 ++ .../textures/player new jump 144x144.png | Bin 0 -> 3307 bytes .../player new jump 144x144.png.import | 34 ++ .../assets/textures/player run 144x144.png | Bin 0 -> 4511 bytes .../textures/player run 144x144.png.import | 34 ++ sidescroller/icon.svg | 1 + sidescroller/icon.svg.import | 37 ++ sidescroller/project.godot | 52 ++ sidescroller/resources/360x360 idle 4.png | Bin 0 -> 24069 bytes .../resources/360x360 idle 4.png.import | 34 ++ .../resources/player crouching cshape.tres | 4 + .../resources/player standing cshape.tres | 4 + sidescroller/scenes/Player.tscn | 513 ++++++++++++++++++ sidescroller/scenes/box.tscn | 18 + sidescroller/scenes/character.tscn | 19 + sidescroller/scenes/world.tscn | 66 +++ sidescroller/scenes/world.tscn1658547053.tmp | 11 + sidescroller/scenes/world.tscn1742165030.tmp | 9 + sidescroller/scenes/world.tscn5787324462.tmp | 32 ++ sidescroller/scenes/world.tscn5829515682.tmp | 27 + sidescroller/scripts/player.gd | 183 +++++++ sidescroller/scripts/player.gd.uid | 1 + 36 files changed, 1292 insertions(+) create mode 100644 sidescroller/.editorconfig create mode 100644 sidescroller/.gitattributes create mode 100644 sidescroller/.gitignore create mode 100644 sidescroller/assets/textures/360x360 idle 4.png create mode 100644 sidescroller/assets/textures/360x360 idle 4.png.import create mode 100644 sidescroller/assets/textures/Player Crouch-Idle 144x144.png create mode 100644 sidescroller/assets/textures/Player Crouch-Idle 144x144.png.import create mode 100644 sidescroller/assets/textures/Player Idle 144x144.png create mode 100644 sidescroller/assets/textures/Player Idle 144x144.png.import create mode 100644 sidescroller/assets/textures/player air spin 144x144.png create mode 100644 sidescroller/assets/textures/player air spin 144x144.png.import create mode 100644 sidescroller/assets/textures/player crouch-walk 144x144.png create mode 100644 sidescroller/assets/textures/player crouch-walk 144x144.png.import create mode 100644 sidescroller/assets/textures/player fall 144x144.png create mode 100644 sidescroller/assets/textures/player fall 144x144.png.import create mode 100644 sidescroller/assets/textures/player new jump 144x144.png create mode 100644 sidescroller/assets/textures/player new jump 144x144.png.import create mode 100644 sidescroller/assets/textures/player run 144x144.png create mode 100644 sidescroller/assets/textures/player run 144x144.png.import create mode 100644 sidescroller/icon.svg create mode 100644 sidescroller/icon.svg.import create mode 100644 sidescroller/project.godot create mode 100644 sidescroller/resources/360x360 idle 4.png create mode 100644 sidescroller/resources/360x360 idle 4.png.import create mode 100644 sidescroller/resources/player crouching cshape.tres create mode 100644 sidescroller/resources/player standing cshape.tres create mode 100644 sidescroller/scenes/Player.tscn create mode 100644 sidescroller/scenes/box.tscn create mode 100644 sidescroller/scenes/character.tscn create mode 100644 sidescroller/scenes/world.tscn create mode 100644 sidescroller/scenes/world.tscn1658547053.tmp create mode 100644 sidescroller/scenes/world.tscn1742165030.tmp create mode 100644 sidescroller/scenes/world.tscn5787324462.tmp create mode 100644 sidescroller/scenes/world.tscn5829515682.tmp create mode 100644 sidescroller/scripts/player.gd create mode 100644 sidescroller/scripts/player.gd.uid diff --git a/sidescroller/.editorconfig b/sidescroller/.editorconfig new file mode 100644 index 0000000..f28239b --- /dev/null +++ b/sidescroller/.editorconfig @@ -0,0 +1,4 @@ +root = true + +[*] +charset = utf-8 diff --git a/sidescroller/.gitattributes b/sidescroller/.gitattributes new file mode 100644 index 0000000..8ad74f7 --- /dev/null +++ b/sidescroller/.gitattributes @@ -0,0 +1,2 @@ +# Normalize EOL for all files that Git considers text files. +* text=auto eol=lf diff --git a/sidescroller/.gitignore b/sidescroller/.gitignore new file mode 100644 index 0000000..0af181c --- /dev/null +++ b/sidescroller/.gitignore @@ -0,0 +1,3 @@ +# Godot 4+ specific ignores +.godot/ +/android/ diff --git a/sidescroller/assets/textures/360x360 idle 4.png b/sidescroller/assets/textures/360x360 idle 4.png new file mode 100644 index 0000000000000000000000000000000000000000..71d87b2d3e069d0b8db35291b55f9827c926631c GIT binary patch literal 24069 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 literal 0 HcmV?d00001 diff --git a/sidescroller/assets/textures/360x360 idle 4.png.import b/sidescroller/assets/textures/360x360 idle 4.png.import new file mode 100644 index 0000000..b450a66 --- /dev/null +++ b/sidescroller/assets/textures/360x360 idle 4.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://c2vs4ssjqtd2i" +path="res://.godot/imported/360x360 idle 4.png-6f340b4285f1ced246665e4a52a5b3e6.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/textures/360x360 idle 4.png" +dest_files=["res://.godot/imported/360x360 idle 4.png-6f340b4285f1ced246665e4a52a5b3e6.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/sidescroller/assets/textures/Player Crouch-Idle 144x144.png b/sidescroller/assets/textures/Player Crouch-Idle 144x144.png new file mode 100644 index 0000000000000000000000000000000000000000..3512c15ed8407600d3d615fda7e3e5ff9fd81312 GIT binary patch literal 2468 zcmeHHZCFxi8pa&Q5A-Ug0v#=})D&gaNJgPVQ?CMBM8z_+bk&j?EiXT^Owm}|Y*KSX zDkJ7tTM=#2hq|I0GP%~8WooFcjUQW?41Noupg_wZn!T>EU;AhN%=z)2_s2Q+^W4w< z-1k`ud54YF*H#b+#D=&tBoYEKtJdGkExy#By0_0;^e>al$Q|1uf)@@l2*h$fF(in3 z{L19u{c{e{4(2nWFzY8HiOv-X#jEU1ui08$DLsuWhHZ%18x!*dtR9L|c@@*wI=8Ha z!%t-et$}%X1nqQjbNk9U@ivkUv!PunVTrgC549bfe9V%X`fO@qVqkKi<)oK*nDg`t zeevI)|91ij&V3j1O_FBh4dN}Lx$w9AgA7MU0C(Z|*LuW+%W6DK9^8tOrsVe{3?+W_ z+gk{#4ndw9eAZkDBcVA*bMH<@>~2LhBtRg6sCOy2WF5Ikv+91NI>N*T{4@{_uQmZM zZ7pzz!Q#q}27f8CT_$TK)hDdtnXxU@PTLv9<&L;y%`TK8XT!*uVs^)QD?0cK(iQOL3@6@J7-oXUiS+g)P)}cE2!iB2?Wnl7&LM4BaIAjH3NA>Xhim z>Wzroz=5Q+f?l%lezVVl$Sdw-fF!zR4cgYZn@KXX64JJE-DZX>TfNk(*%rufm9It; zSeoTyNqiogo+TKXSN{BF+XwNCj@A3mFlqDDNG%pv${JPJkK3owOb3+sBb8{|lddOk zr%uF*dANhquZJ3?-7jjr(YN%K4E)R6RVTiiRb*6&S340x+B(UoPm^D<#Xw;1znSj{ zX|xqbJ@mQ-P{_knY(ds5Q=+tLU`Tg!UDDah8TEJIB^(wf8aow_?-`}aYcF-zRXUol&cRfKdl!H0XzbFCx zvpxBF`HHsFW3x|Q>lVX82OBH6w0bLS+aNPyPX_)=JiCk8B>Th6pI!9*gQV=Abnfyg z*aU6}u>P}ppp^51Tz=lZsQx^b*HGT|+^x}Mak~4Gy;$^mu44W>9eRK{+xMP;&~@EB z)`9^vTfZ???v@}=jQ3M$ltHuRT}E!Zd>A)Zk4_uvvOd3n;NDGA|5(FhJ!Ow|*XM-0 z=JzQHN1|P(&MZula=qSvE79{fdYAq(3(?bLzH)+`#--z$7h{FT#$Q#L4>U0DHZ!Uh^T~V>X^&=K zO>;272TlDrQR=@q&sLlF_H^o6cMx1f7dO`*dUUH{^{5a!Cd%PyKXk2{W;R)o=s_af z!p~2WUta5Nayc{fuu{4OV@KRn_y4>VWJiiX=>qpD(iYb^5_To7<^}tJ- zdXAMO2u65;|8uZYi>iuhRIxU0nE|Xbpk;#gQI2M=J!#*Sn>Ay2+eAxkS1B?~UK`>s zmjvTG>9pg2A%lqoCc?Xv$WkOGTQ0$XG1Y!`1(=MGLQhZQ>OY=35dULx#=k05Se!d2 zMaWe1SvS^FX^bDVGwDjdD15jUXWnQNMFi6Y3_3S7!TOvbSc^2)7ncQ8XzC-M8%27w zw0xJiP52uOFPa~p^)Z}2=Hv#_B?L#ja*yTkIgPd9th@f}u0q{o(<>=u``I0UQ0S{D zoQ~g$SE%sx#m2gtY>x_Hpg&A22vfzz_y#{cpIS*YvMs(k!n3g(kGB+ODi+>U=&Pnw zFY~zD0caUEqfYL^e$e1q<8^giA$Kv=jQdkr#5Zi;2#{Ggl=?pPO zM);}aaQS+;n!GeppY%feaQ1&VyAeI#FZzCK{*3oGO-O);xmvaZP*)u~g&z}8q2X^n z&C#3T+M?kaW@^P-#$OhjUgz!`jtZJ?q&Am!S4t3Wz6Abc5vG&BE@?}KlqcJo*&EA2 z2%&jg&B#V$*c8oTV8+#n@>^@n{6Co(BnM^x?VrN(0+ZT4B4JIxT?yC?F_au4*q*@r EFCY+mI{*Lx literal 0 HcmV?d00001 diff --git a/sidescroller/assets/textures/Player Crouch-Idle 144x144.png.import b/sidescroller/assets/textures/Player Crouch-Idle 144x144.png.import new file mode 100644 index 0000000..6c2ef42 --- /dev/null +++ b/sidescroller/assets/textures/Player Crouch-Idle 144x144.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://co5l6328i3y76" +path="res://.godot/imported/Player Crouch-Idle 144x144.png-8bb58e8325f4327962c29b68b7d698ef.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/textures/Player Crouch-Idle 144x144.png" +dest_files=["res://.godot/imported/Player Crouch-Idle 144x144.png-8bb58e8325f4327962c29b68b7d698ef.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/sidescroller/assets/textures/Player Idle 144x144.png b/sidescroller/assets/textures/Player Idle 144x144.png new file mode 100644 index 0000000000000000000000000000000000000000..5abdb4fc41886e2574ff080492391b315b015579 GIT binary patch literal 3168 zcmdT`dpy&7A76Q-nqEaEm$HzSQxj1+89!$xp|eSPDt8ZZPZ!ZNzZFipP@HkBuvubs zic?|_#ZJ1oH0Bm^PiwPE9Ghm$c78vP^Zapk&fm}L*&n}sU%%Jq`~7}C@5|@&yXsDG zUbRwxB?5t1<#GV;fk3DiKx`vjSqgG z7JNi+*$7>$NW^po`7y;In@4GDjH#E>GS&o*64X;)WE-R#Xdl;G`o*VOE9lt60LNed z@y{)H@CS}vIk`gnz*b!sYqcsXE~;%jc6HLlCswJhZ#)NQTT5%C-QxRY@%M;FKKFb) zdviFxwL=@q;{V|{&khKHeq#Up{b-jBRQVbs;IR9WRdATY`ak0T#bl4@ z7Ni&=5CMCzly=W8R@5{zxB0CAzLA)*G7Jtz-1`Nwxa)eIda8Cpv0z;cBA}h7T*H?k z5juYvrja$eE=Iq-{$L7x@48@x8sgVu-z+9sztno+;3K_BYQ@5JF|L2aS%*Mz4kmvU z7hwO`VyzLB)@p=rmNL<7n#~=){}O)jw|OEE7vE0Goy;WuVLInZ@42QkHADNP&w6`uW^J=CC`1|^(}g{G9E$Sl z+%?XIkR~X5D}NR4VnO5$gRegMeRY1yx%P+U<-Rx~+va7ihk#}(6D@&@3u~6AF6a5< z2V&|KYQ@fpPU8`cUQ#?~$$pY+`VkJd*o%I^NBtem?2{>r39i#s|OT4 zicOq+S13w|e9`UUOaObsajVSzl>1>-^4ebX09IhU>QYup_ zC4Z@T2y6%PO<)t5st_lML*6L59|iIp%h#i@JDL82r^6#AyaucH-Sgo{(OzGhj!J!V zK=)Ub~kUK0POP%nZxk#dORI8K8r0p!4?~_1GXUnk^p2z_rv) zNsBODS76S7+XsGSu>+5YfajHM|hG~rHHz3iexxAa1WnGK!ODdUrpi?9Pb z5B>SdJ4Z2*<(#Saa)2-ht~X<%EF_%aWS+f&9yQ5uPWtZQx7F`wLegJtd_%Aa{Aqu5 zgXPz=Ll-{N{pKgCk;bwW^re7A;ed>QP&lxlN-rCw%k7h_&4Bm=WDyTpQ=1=CS;c>++n)jsT@G)_TJgX+>+C0-gc*ms>wx(vKOFJGz-jrT zQt!*oO+pS6f{3_Y-n@re*b*d(m>ugjr9``D27O>1&{wdnCbh9&4A`hlcntVEx z&8}Qi?k%F$DPj_mgZN1zGVc;qPEwTIQ} zbHoHF^y?g}t*T<@ChDJn`zu4{p~3{!`xN;xX`3%&pZJ#cY_VfHCYMJX0H-J49Rh5t z^6JV>CBE#rj+WS3Qe1p+$vuoNn#kx*>I0p;Xws9LwpIS%W(?$ShC5Vx7hRck8xZ!J zS@=U3G>R)KYqQH@hA8%KF;7Y2Esm>Ncn{csrQ{`*-yl6W2iv;SP{p^gXOK4rpekmq zpAe)w-EqSuQTBW9ZTeiBp1$erxl-zjQho(SccS=HrQIh{f*(e=+9|SO?2bN$yS6G{ zz-JZ0GG~^OS}6NJd>qg~-92r7+|RE!uFHH%?)0K8dz{HB&y{jA%QPN&Vu1!i9xWjf zFL3)Ce5|}r@uQOu(`ur?tfzU3Tge(M!&F&>Bl1-WCMAfd8M-HeZ6TcE@*fw(<-lss z+VxsSH0QlR#t&wf-DF_D{pif42pXZDnJK^T%cf6NfMm>I4&y(w-&RGA?YA&C%hIC7 z1ME2K>=sTX=vad?%Vj-z9N_+Z3x-=g9TaKimKz$+n#8#5)pK3nE8oAr_aFCtU)TM)KJWME^?toy@7Ikx>)|8| zQ~?4209ohX?Y#j2i4gJopHh3o_vlYjn&QWsp^eKhurpkXywWVHT-id^Xp!~v1NV- zLmV&-F|$Vo0MN`CIKI9QV7MP);x(lT$hZYE6n}G@N)s;$*SaBPIKfH`C25tKYXM|_ z28W2VENI##0RX(Vmjs1Ks&2kVo)K`GYfD$BQUErRE{sV^m` z0s^Y8hgD$&uced#fPZO6zY+&GR=y*}qWZ{n$XV?xQGd9wz;#Omo?2NPsU((LiaL=V zp8mfYEO%-TYurSXYl%5{B&otZVg+M zhNV6ThN@2>XcJeL2Tl zv>C5c8K9Bvih*ir&>bXg6Pd0T939A=YlY3UMjCizq{A@a5(BTIubvEDhJ@jn%#6t;{Jgq!$w1_i$VH&)wCjmjXOzku+NxU)tFMZQ~kqEha=Z0 z+!#w^=ADRtey}lt*GIJVdD^2Irlla?YHX!2u_oR78{r(eC8_`R(SLh5``TxQkrhAM z0=af?ik_K(P6DQlzMlj4&p9p~KAkz2sp5UuLf{tqQ?28f+O@aU>dF+cZ$RlP9l8fQ29AA$e{-JHf{Ah$bTPBtX_p4&4^YoOhB z@w;~=#Sg=iK)FQfYpHL9+^V^x&^NsLWEQ?W^<{1luXjYmO%*!f8q4I8n==sVC5q_k zk;x8TY**Ykqh8R~=9LLn`Q8+C+3!>ZYn-;;_|&-(s`O%tkm|3Jl`%H6pKYE=U1+8N z^9c{(e$OZotc3|3KyX|q!8XQyh`41{N=~l3Lqc*dybI6dSl=57f-4l+gFq> zVr7OkNy~ih=-6xwBPg=oMR;k{ljhyDwb>V>b7Ynh=h6qGiP*8Py52f*UIaIs;F9&<$T#84Bzi7ICAY#) zgbZH)1>fAc>aTQ*G&F9WfQm>Uy>V?@j_Up}GeKCMpzjl0t-@93%(7>ewM%i%IQSDT z<2%hovt6*{q`_o->)`q$0 z<|IYL_0Kxih*L|*%u?H)Hfw9!Oy8E~D)cJuQJGhdyop!q^d9YQ-J0xJ4;nalBKzoB z{Oq{=Xr+uWl*PvdTw8X01rSRSLgHI%JF977(RY(>1Q|yWA3>BF%>&3Q=L11T`0Hg_ z={gZ4gz-z3IqZ3U6wH9!4hdYJ^@JC2pe9$e-Q+aB%+P^8lgv*W6F03y+FuF;%uk*U z^atiFC=qh{MAf5*x4{V@tK)$e*ID7vrcm@}GhbJMhYh4D#>;N%<+z58o<@Pr@lNO8r%JS@0jykB#eH>P0Q9v|GKbKE*^DP^Wd zA840DxGadD>7l4kL&v@*6W6C4$3$1`Z2g)Da)fJ!*Py-2qdUZ&Ed^6-C)TU(sU$-r zwT{!0c_;6PildunNAPU=kUfGvGkU;ZPrgHkgAqKQ^K7M_Rgw<%`eVz(Uq%}bRZ=ca z**pt17jOl-t^O{q4)$K}w}9YK1kI&6Qfqn_y;Eg~T2D-Y`qtW27s*P`E9PMmdhOrD zb1`b!`b2m}f!qLQ;8(oPQyAvThfFYD|3^r}Ia*j>jJutM@LyXsu~8e-F}7#xnud-U z*;n0$FymFJcFC9H%6OAe9=G|mOvS2|jY6aW->ngGYoWtoD%;41hcXDAC7iPQ*4oR1>~$bOOrIlQ%couaeT?WLzCj> z^>n7Q4GP@cV{Gq{9QCBdIu+GR^PTuTMK*3_D2pguu*54>(;}BDN{U}zQ^&x=cI5v7 zjP(T{s>RKjEh+!*kdK#Fx!2`1AG0Ws%okq$FfCsa^i&I`jNq)STvzL(2_I1}KiZ8N zU6K|qHf9mlBMMPe#&ba4ZSXz!VEkdYyx_!qsr*_S!UyXYdAnupeF>Ei|bgujvy@Fc>jiFUT7uQJ*ZQ`WKqRN{qeM z;dnb#RT8P@#hkg@M)Zz3ogzuT`)ttLxA#d-E5}oL*0A8;hEfD>xqtq_6ETqGlM+Iz zxa&Bs%;e*B0ND=r2@y`v^M*-noL`TC^ha^mqmOUqvlFixFiR(->V{ zXA~m*OXGH6Ac%Y^P(SZsRJ}CcIhz&5Dk)fM^r@Ho0zbfon5=eo`p;tc&d6k3d%Uoq zs|#a*W|M2=&QnF%p-H4|NHN6hVtk+JCUxgBk9D0RK!E9kr89^<69 z2a6 zQJL-nxn6y<5LCttai!P2wSXzDNb}v0e08hLfuDT2L6es?l7yIa_I;doWJL_Z4 z{$KSG%eV0wQ8>_|EBMz_*JC);`1j)Z)KWRL;j#tkq7EGZmsq6};?reP0;iN{VUA=+P`spx}b4d*&?mX2K@1B9!UvRY#N%x0Qcm zbQZyQ(-_?MqZSc;C5`-y@k;EnQjdZwBh*sq%x0<+tSU?85M}!!4QbsS@>Rc@2ltr~ zSc+$VDAr@a4qYdvbjIRZQ4{r?MeIVn>u-WD@3-As!}kwS@q})*>XtzS*s8po!mw?H zZG94j0Sr#O>H_=>@5hJX>%)@Egfwy2x^Ip1f(ttU`0o4dmj z91>fCZru1Fqec`SrD4<1oG8q#P4C?WLv*x=eb{)Ud*`{iCPhg388zWs@^;G_W3r@` zi107V$}f08@%Yh)$%E*-3uEj8no<&~0?O>uIJJ&M&#}$oP5c zsfq#9$pN!T|3?HM_ec(g!fgH}YzGD6#daJL4*KiK1s0a|8$hNoHv0C_2*#JdS|ICl z#9C-^x~pDWv)B_7vh6OY#GH)3_Pj4?@W--&PG8oQm%W`o8mV+psYr2o{LkbbBgwRh zF$Naa;C4N|yo%QUjz+s`<@0{myXcSD`_Pr7~5R*?h%wu8&q9}@4) zImWzCgSYPpQZN1^+OyQdfo#>dNg7R6)NPKI-2JbkDA)r4A!a5--T`j4o|q2L2(tO zdrba+{_6_JpN@NgixA!H?*ry)iQnja@)B1Z2w z69r!K-QLS1I&{so^@Q7BdCKJvaqS1!`D}a!v-B~RsCl!)!@sIr3v%qIxHblXyd( za@VHDIEt0%@elw$sIj3mfk2b!-1y`7wO-pSx(s^h@n=Teoc z52AU$>?dY(c04S&e@Dnfk3SV_QvqR}i06n+ljW5)SHrSM{joWimklA4=BRr^Q(O{2 zk==tb@BKQRG9S$YN&HN%MAYbGIjH zG5-lF>oKLAK^wV%V{ro;RlOz{J(DBUdaNCEg|H2hPU%Fj%NPP9b35>Mn1&w(o)Go& z!OIUwk`E6Bus%~nxdRJ{=MvQ1DcKl&Rurhd?#j-WaERi-Y{Qq7{G-MO>hB*Wqib{a zC~ztQ#mJ}Ipjbt|At!mpg5OC8>7Re|^O2uLcKbvDcI4dCVM-$+c&qMM!N%*d=dD$- zVb_m`vCqPVPY|)qf?m@XL0`=vEO$j9oc|R3T9^-IP0>gkz?F|cr=8i%c)mM%M^?8; z8d$p$#g~cGQGZ`J>w1{sZfP>n_9m?dfo6ZZV^D?r<3A>oPU32io zETapYM7UgLgj{yBPL)!R71UieRI8p~bW>X|L z-iA)t?__)`ABg&{yi&IkTS`lozL4-TDTgC{gW9)xp|R{Cq<{17hXO3FYz=Uw_La>LAR@SWWe)IweFtnJlzYMZ78kiVA<_Wb@bcGnw?{Mcp&vo zjUK~f!n{7)uT)h?C)TE>8Io81K(nA3^kx|ghAHtWPo>YFiX!93>5mC=f-ooM!#bbf z`l&QU*@zjxQaEmHz-Piiotas>t6ja4AaXAh1sFos?#7sR7!`I~Rgzzj0j{@>hXG7i z(DbjBA8`i6vR|i#?RQAFpL?0hn--`x2?(Yu2cz9@0X0U1Pj2ntpRe?~C zg?&BWOWENB0shdL&`6QI)*fgXQ|8uj2&xNzm!`KN6T+)R?IKx}KKB19cx z7ecE5xA`&_O29Vkya?l=G;|qr^6DnEeQ1JRw`oV(d)JdN!G{dLBmc-wBfQ0ZI`D02 z&}Ra;lH>Iq_HRZkaKDvOGJ0Hm_0tfuSnx-K_t#kJs}M9#K{Cn;Ny&4Dwl-b?_c=o} zVIAC%@zp6mLpdVFMU@{iriZL8M!J)!{kFPI!Pk7gZlj{ZNbQm$DMt-SL zEsqa1RiF1{2W2ZQ0FwZn_xE#lxuA)&J)p(L5MkX@UNJDvt~uEH`gSesQINcM zO$C%cUM+rxig7Rca+k{i_X5Cv*Aglb#z#XH=yJ&K@+_^} zB_6OF3+(pc&c)k$isuzXxiMR5=uKsMdA#A|U|RLKGnj2A8Lt}Z4TS2e<}s_$uj;$4 zQ$n1xk7yDq9tGF8_yt)n)?~7pXQ=(r6_^OPA?6g3HFAk{}`=v_b{}Pf#qf@=5&g+&Sm6ZGQJY+8r|KT zn;==PyPACu;n4dmYRVdhpf0r{K?~469)X ztzh^^EObnHIk7LfQn72L3$X}zBZugZqy_c22J*E&XseY%p%r1NETxj}U`zq|7H_$N zd|QHOmw5iMz>;@cgjmRj^1(Y*4$NEnZ-k^}U#x5=G#txvxifM35mpI_f@oakZ4*JE zw8v`Y*~zLLxuG<8*(?Kn5kuo{*!0(}G(v)q(0zVJ7*?foH;^Iwy)#$D#@ zS{Nu%02t<-ikn7YTHg)qbyAK?6+h`pw~KS(^Y|XU1gy}QSfw02Tt{^UGar(Dq`X_X zIxy#{#*jWSo`b3lu)*UasUGy(O(}z!@^^_`sB`bKeY5g=x_(hxNEn_Ej?L~JGH@GB zT2pDo4^%NO9#|Iwa*pbPCXGi0#q$|w8_?$Z>YkU|(moNo&m!joiw2$kOx8adhw!Rb zP=@z1kr?2WacUFf|G{QZUWHbD6 zY$Zvsk)y+)zAhbIR?@Rx@Mcda6==JYV$~AWOG)tzL;zm6`tdpUwrSdk{95>qeAQbo m*Ok=5e~{W=BLDZtj4HylyoN2|tlZisqo-qdvsml?(|-YnBT>Hq literal 0 HcmV?d00001 diff --git a/sidescroller/assets/textures/player crouch-walk 144x144.png.import b/sidescroller/assets/textures/player crouch-walk 144x144.png.import new file mode 100644 index 0000000..9e505a8 --- /dev/null +++ b/sidescroller/assets/textures/player crouch-walk 144x144.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cox74najv0828" +path="res://.godot/imported/player crouch-walk 144x144.png-b3233c7c993219b2d16a671bf8f882a8.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/textures/player crouch-walk 144x144.png" +dest_files=["res://.godot/imported/player crouch-walk 144x144.png-b3233c7c993219b2d16a671bf8f882a8.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/sidescroller/assets/textures/player fall 144x144.png b/sidescroller/assets/textures/player fall 144x144.png new file mode 100644 index 0000000000000000000000000000000000000000..8746151d9870cd1814875341914fc2a53469b3f9 GIT binary patch literal 1120 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 OEHE{+0$1s~-v19EtJBT^ literal 0 HcmV?d00001 diff --git a/sidescroller/assets/textures/player new jump 144x144.png.import b/sidescroller/assets/textures/player new jump 144x144.png.import new file mode 100644 index 0000000..991d297 --- /dev/null +++ b/sidescroller/assets/textures/player new jump 144x144.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://crkx6pt8e4cmc" +path="res://.godot/imported/player new jump 144x144.png-fc8c1e8ae2efcaf0c0c9a0de9b7b7199.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/textures/player new jump 144x144.png" +dest_files=["res://.godot/imported/player new jump 144x144.png-fc8c1e8ae2efcaf0c0c9a0de9b7b7199.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/sidescroller/assets/textures/player run 144x144.png b/sidescroller/assets/textures/player run 144x144.png new file mode 100644 index 0000000000000000000000000000000000000000..49619c224857d44ee2aacb15bc71cd42d0e05e48 GIT binary patch literal 4511 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 \ No newline at end of file diff --git a/sidescroller/icon.svg.import b/sidescroller/icon.svg.import new file mode 100644 index 0000000..ef9b47a --- /dev/null +++ b/sidescroller/icon.svg.import @@ -0,0 +1,37 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://nfa8op27ovg1" +path="res://.godot/imported/icon.svg-218a8f2b3041327d8a5756f3a245f83b.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://icon.svg" +dest_files=["res://.godot/imported/icon.svg-218a8f2b3041327d8a5756f3a245f83b.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/sidescroller/project.godot b/sidescroller/project.godot new file mode 100644 index 0000000..3ca3963 --- /dev/null +++ b/sidescroller/project.godot @@ -0,0 +1,52 @@ +; Engine configuration file. +; It's best edited using the editor UI and not directly, +; since the parameters that go here are not all obvious. +; +; Format: +; [section] ; section goes between [] +; param=value ; assign values to parameters + +config_version=5 + +[application] + +config/name="Sidescroller" +run/main_scene="uid://21dnwl0rfjcd" +config/features=PackedStringArray("4.4", "Mobile") +config/icon="res://icon.svg" + +[display] + +window/size/viewport_width=640 +window/size/viewport_height=360 +window/size/window_width_override=1280 +window/size/window_height_override=720 +window/stretch/mode="canvas_items" + +[input] + +jump={ +"deadzone": 0.2, +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":32,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null) +] +} +move_left={ +"deadzone": 0.2, +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":65,"key_label":0,"unicode":97,"location":0,"echo":false,"script":null) +] +} +move_right={ +"deadzone": 0.2, +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":68,"key_label":0,"unicode":100,"location":0,"echo":false,"script":null) +] +} +crouch={ +"deadzone": 0.2, +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":83,"key_label":0,"unicode":115,"location":0,"echo":false,"script":null) +] +} + +[rendering] + +textures/canvas_textures/default_texture_filter=0 +renderer/rendering_method="mobile" diff --git a/sidescroller/resources/360x360 idle 4.png b/sidescroller/resources/360x360 idle 4.png new file mode 100644 index 0000000000000000000000000000000000000000..71d87b2d3e069d0b8db35291b55f9827c926631c GIT binary patch literal 24069 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 literal 0 HcmV?d00001 diff --git a/sidescroller/resources/360x360 idle 4.png.import b/sidescroller/resources/360x360 idle 4.png.import new file mode 100644 index 0000000..7b07966 --- /dev/null +++ b/sidescroller/resources/360x360 idle 4.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dee2owliuw21p" +path="res://.godot/imported/360x360 idle 4.png-117ef8683eb12d17036155a97c6705d5.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resources/360x360 idle 4.png" +dest_files=["res://.godot/imported/360x360 idle 4.png-117ef8683eb12d17036155a97c6705d5.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/sidescroller/resources/player crouching cshape.tres b/sidescroller/resources/player crouching cshape.tres new file mode 100644 index 0000000..62f787d --- /dev/null +++ b/sidescroller/resources/player crouching cshape.tres @@ -0,0 +1,4 @@ +[gd_resource type="RectangleShape2D" format=3 uid="uid://xplr3bgjsfor"] + +[resource] +size = Vector2(58, 62) diff --git a/sidescroller/resources/player standing cshape.tres b/sidescroller/resources/player standing cshape.tres new file mode 100644 index 0000000..0833b7d --- /dev/null +++ b/sidescroller/resources/player standing cshape.tres @@ -0,0 +1,4 @@ +[gd_resource type="RectangleShape2D" format=3 uid="uid://bsdsjlbi8h6cf"] + +[resource] +size = Vector2(58, 86.5) diff --git a/sidescroller/scenes/Player.tscn b/sidescroller/scenes/Player.tscn new file mode 100644 index 0000000..122fe17 --- /dev/null +++ b/sidescroller/scenes/Player.tscn @@ -0,0 +1,513 @@ +[gd_scene load_steps=21 format=3 uid="uid://c3w3n7ysd02bd"] + +[ext_resource type="Texture2D" uid="uid://c1my4xbvhsdq8" path="res://assets/textures/Player Idle 144x144.png" id="1_p0vlq"] +[ext_resource type="Shape2D" uid="uid://bsdsjlbi8h6cf" path="res://resources/player standing cshape.tres" id="2_khinc"] +[ext_resource type="Texture2D" uid="uid://crkx6pt8e4cmc" path="res://assets/textures/player new jump 144x144.png" id="2_qu4a1"] +[ext_resource type="Texture2D" uid="uid://dvy7cws4egkmh" path="res://assets/textures/player fall 144x144.png" id="3_70d11"] +[ext_resource type="Texture2D" uid="uid://d11goqqiewsdg" path="res://assets/textures/player run 144x144.png" id="4_cw2d6"] +[ext_resource type="Texture2D" uid="uid://dletf8p3wr4n4" path="res://assets/textures/player air spin 144x144.png" id="5_khinc"] +[ext_resource type="Texture2D" uid="uid://cox74najv0828" path="res://assets/textures/player crouch-walk 144x144.png" id="6_70d11"] +[ext_resource type="Texture2D" uid="uid://co5l6328i3y76" path="res://assets/textures/Player Crouch-Idle 144x144.png" id="6_cw2d6"] + +[sub_resource type="GDScript" id="GDScript_khinc"] +script/source = "extends CharacterBody2D +" + +[sub_resource type="Animation" id="Animation_6eyey"] +length = 0.001 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("../Sprite2D:texture") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [ExtResource("1_p0vlq")] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath("../Sprite2D:hframes") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [10] +} +tracks/2/type = "value" +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/path = NodePath("../Sprite2D:vframes") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [1] +} +tracks/3/type = "value" +tracks/3/imported = false +tracks/3/enabled = true +tracks/3/path = NodePath("../Sprite2D:frame") +tracks/3/interp = 1 +tracks/3/loop_wrap = true +tracks/3/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [1] +} + +[sub_resource type="Animation" id="Animation_cw2d6"] +resource_name = "crouch idle" +step = 0.1 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("../Sprite2D:texture") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [ExtResource("6_cw2d6")] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath("../Sprite2D:hframes") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [10] +} +tracks/2/type = "value" +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/path = NodePath("../Sprite2D:vframes") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [1] +} +tracks/3/type = "value" +tracks/3/imported = false +tracks/3/enabled = true +tracks/3/path = NodePath("../Sprite2D:frame") +tracks/3/interp = 1 +tracks/3/loop_wrap = true +tracks/3/keys = { +"times": PackedFloat32Array(0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9), +"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1), +"update": 1, +"values": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] +} + +[sub_resource type="Animation" id="Animation_khinc"] +resource_name = "crouch walk" +step = 0.1 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("../Sprite2D:texture") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [ExtResource("6_70d11")] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath("../Sprite2D:hframes") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [10] +} +tracks/2/type = "value" +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/path = NodePath("../Sprite2D:vframes") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [1] +} +tracks/3/type = "value" +tracks/3/imported = false +tracks/3/enabled = true +tracks/3/path = NodePath("../Sprite2D:frame") +tracks/3/interp = 1 +tracks/3/loop_wrap = true +tracks/3/keys = { +"times": PackedFloat32Array(0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9), +"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1), +"update": 1, +"values": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] +} + +[sub_resource type="Animation" id="Animation_p7iby"] +resource_name = "double jump" +length = 0.55 +step = 0.05 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("../Sprite2D:texture") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [ExtResource("5_khinc")] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath("../Sprite2D:hframes") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [6] +} +tracks/2/type = "value" +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/path = NodePath("../Sprite2D:vframes") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [1] +} +tracks/3/type = "value" +tracks/3/imported = false +tracks/3/enabled = true +tracks/3/path = NodePath("../Sprite2D:frame") +tracks/3/interp = 1 +tracks/3/loop_wrap = true +tracks/3/keys = { +"times": PackedFloat32Array(0, 0.1, 0.2, 0.3, 0.4, 0.5), +"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1), +"update": 1, +"values": [0, 1, 2, 3, 4, 5] +} + +[sub_resource type="Animation" id="Animation_o4126"] +resource_name = "fall" +length = 0.05 +step = 0.1 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("../Sprite2D:texture") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [ExtResource("3_70d11")] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath("../Sprite2D:hframes") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [1] +} +tracks/2/type = "value" +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/path = NodePath("../Sprite2D:vframes") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [1] +} +tracks/3/type = "value" +tracks/3/imported = false +tracks/3/enabled = true +tracks/3/path = NodePath("../Sprite2D:frame") +tracks/3/interp = 1 +tracks/3/loop_wrap = true +tracks/3/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [0] +} + +[sub_resource type="Animation" id="Animation_bruh7"] +resource_name = "idle" +length = 0.95 +loop_mode = 1 +step = 0.1 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("../Sprite2D:texture") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [ExtResource("1_p0vlq")] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath("../Sprite2D:hframes") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [10] +} +tracks/2/type = "value" +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/path = NodePath("../Sprite2D:vframes") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [1] +} +tracks/3/type = "value" +tracks/3/imported = false +tracks/3/enabled = true +tracks/3/path = NodePath("../Sprite2D:frame") +tracks/3/interp = 1 +tracks/3/loop_wrap = true +tracks/3/keys = { +"times": PackedFloat32Array(0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9), +"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1), +"update": 1, +"values": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] +} + +[sub_resource type="Animation" id="Animation_d3wef"] +resource_name = "jump" +length = 0.55 +step = 0.1 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("../Sprite2D:texture") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [ExtResource("2_qu4a1")] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath("../Sprite2D:hframes") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [6] +} +tracks/2/type = "value" +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/path = NodePath("../Sprite2D:vframes") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [1] +} +tracks/3/type = "value" +tracks/3/imported = false +tracks/3/enabled = true +tracks/3/path = NodePath("../Sprite2D:frame") +tracks/3/interp = 1 +tracks/3/loop_wrap = true +tracks/3/keys = { +"times": PackedFloat32Array(0, 0.1, 0.2, 0.3, 0.4, 0.5), +"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1), +"update": 1, +"values": [0, 1, 2, 3, 4, 5] +} + +[sub_resource type="Animation" id="Animation_lkdrv"] +resource_name = "run" +length = 0.81 +loop_mode = 1 +step = 0.1 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("../Sprite2D:texture") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [ExtResource("4_cw2d6")] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath("../Sprite2D:hframes") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [8] +} +tracks/2/type = "value" +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/path = NodePath("../Sprite2D:vframes") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [1] +} +tracks/3/type = "value" +tracks/3/imported = false +tracks/3/enabled = true +tracks/3/path = NodePath("../Sprite2D:frame") +tracks/3/interp = 1 +tracks/3/loop_wrap = true +tracks/3/keys = { +"times": PackedFloat32Array(0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7), +"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1, 1, 1), +"update": 1, +"values": [0, 1, 2, 3, 4, 5, 6, 7] +} + +[sub_resource type="AnimationLibrary" id="AnimationLibrary_0rnld"] +_data = { +&"RESET": SubResource("Animation_6eyey"), +&"crouch idle": SubResource("Animation_cw2d6"), +&"crouch walk": SubResource("Animation_khinc"), +&"double jump": SubResource("Animation_p7iby"), +&"fall": SubResource("Animation_o4126"), +&"idle": SubResource("Animation_bruh7"), +&"jump": SubResource("Animation_d3wef"), +&"run": SubResource("Animation_lkdrv") +} + +[sub_resource type="RectangleShape2D" id="RectangleShape2D_bruh7"] + +[sub_resource type="RectangleShape2D" id="RectangleShape2D_6eyey"] + +[node name="Player" type="CharacterBody2D"] +script = SubResource("GDScript_khinc") + +[node name="Sprite2D" type="Sprite2D" parent="."] +position = Vector2(4, -48) +texture = ExtResource("1_p0vlq") +hframes = 10 +frame = 1 + +[node name="mainbody" type="CollisionShape2D" parent="."] +position = Vector2(0, -43) +shape = ExtResource("2_khinc") + +[node name="Camera2D" type="Camera2D" parent="."] +position = Vector2(0, -90) + +[node name="AnimationPlayer" type="AnimationPlayer" parent="."] +root_node = NodePath("../Camera2D") +libraries = { +&"": SubResource("AnimationLibrary_0rnld") +} +autoplay = "idle" + +[node name="crouchrc1" type="RayCast2D" parent="."] +position = Vector2(-29, -50) +target_position = Vector2(0, -37) + +[node name="crouchrc2" type="RayCast2D" parent="."] +position = Vector2(29, -50) +target_position = Vector2(0, -37) + +[node name="wallrunrcright1" type="RayCast2D" parent="."] +position = Vector2(0, -22) +target_position = Vector2(150, 0) + +[node name="wallrunrcright2" type="RayCast2D" parent="."] +position = Vector2(0, -97) +target_position = Vector2(150, 0) + +[node name="wallrunrcleft1" type="RayCast2D" parent="."] +position = Vector2(0, -22) +target_position = Vector2(-150, 0) + +[node name="wallrunrcleft2" type="RayCast2D" parent="."] +position = Vector2(0, -97) +target_position = Vector2(-150, 0) + +[node name="floorcheck" type="RayCast2D" parent="."] +position = Vector2(-1.90735e-06, -42) +scale = Vector2(3.5, 1) + +[node name="wallcheck" type="ShapeCast2D" parent="."] +position = Vector2(0, -68) +scale = Vector2(3.4, 1) +shape = SubResource("RectangleShape2D_bruh7") + +[node name="ledgecollision" type="CollisionShape2D" parent="."] +position = Vector2(0, -90) +scale = Vector2(3.4, 1e-05) +shape = SubResource("RectangleShape2D_6eyey") diff --git a/sidescroller/scenes/box.tscn b/sidescroller/scenes/box.tscn new file mode 100644 index 0000000..5cfa9bb --- /dev/null +++ b/sidescroller/scenes/box.tscn @@ -0,0 +1,18 @@ +[gd_scene load_steps=3 format=3 uid="uid://bnaknh1h8isk0"] + +[sub_resource type="QuadMesh" id="QuadMesh_on5l8"] + +[sub_resource type="RectangleShape2D" id="RectangleShape2D_on5l8"] +size = Vector2(144, 231) + +[node name="Box" type="StaticBody2D"] + +[node name="MeshInstance2D" type="MeshInstance2D" parent="."] +modulate = Color(0.72817, 0.433509, 0.493915, 1) +position = Vector2(96, 39.125) +scale = Vector2(143.5, 232.25) +mesh = SubResource("QuadMesh_on5l8") + +[node name="CollisionShape2D" type="CollisionShape2D" parent="."] +position = Vector2(96, 39.5) +shape = SubResource("RectangleShape2D_on5l8") diff --git a/sidescroller/scenes/character.tscn b/sidescroller/scenes/character.tscn new file mode 100644 index 0000000..40fe77d --- /dev/null +++ b/sidescroller/scenes/character.tscn @@ -0,0 +1,19 @@ +[gd_scene load_steps=3 format=3 uid="uid://delsecj4na672"] + +[ext_resource type="Texture2D" uid="uid://nfa8op27ovg1" path="res://icon.svg" id="1_lkv7d"] + +[sub_resource type="RectangleShape2D" id="RectangleShape2D_ushfy"] +size = Vector2(63, 125) + +[node name="CharacterBody2D" type="CharacterBody2D"] + +[node name="Sprite2D" type="Sprite2D" parent="."] + +[node name="CollisionShape2D" type="CollisionShape2D" parent="."] +position = Vector2(0.5, -66.5) +shape = SubResource("RectangleShape2D_ushfy") + +[node name="Icon" type="Sprite2D" parent="."] +position = Vector2(0, -66) +scale = Vector2(0.515625, 1) +texture = ExtResource("1_lkv7d") diff --git a/sidescroller/scenes/world.tscn b/sidescroller/scenes/world.tscn new file mode 100644 index 0000000..6a40069 --- /dev/null +++ b/sidescroller/scenes/world.tscn @@ -0,0 +1,66 @@ +[gd_scene load_steps=6 format=3 uid="uid://21dnwl0rfjcd"] + +[ext_resource type="PackedScene" uid="uid://c3w3n7ysd02bd" path="res://scenes/Player.tscn" id="1_go701"] +[ext_resource type="Script" uid="uid://d2jx8gdq5o5d7" path="res://scripts/player.gd" id="2_5a7ea"] +[ext_resource type="PackedScene" uid="uid://bnaknh1h8isk0" path="res://scenes/box.tscn" id="3_4wyf3"] + +[sub_resource type="QuadMesh" id="QuadMesh_go701"] +size = Vector2(1000, 100) + +[sub_resource type="RectangleShape2D" id="RectangleShape2D_go701"] +size = Vector2(1001, 98) + +[node name="World" type="Node2D"] + +[node name="Player" parent="." instance=ExtResource("1_go701")] +position = Vector2(601, 137) +script = ExtResource("2_5a7ea") +speed = 350 +gravity = 40 +jump_force = 800 +fallvelocity_cap = 1000 +max_air_jumps = 1 +crouch_mult = 1 +sprint_mult = 1 + +[node name="Platform" type="StaticBody2D" parent="."] +position = Vector2(604, 135) + +[node name="MeshInstance2D" type="MeshInstance2D" parent="Platform"] +position = Vector2(-35, 194) +mesh = SubResource("QuadMesh_go701") + +[node name="CollisionShape2D" type="CollisionShape2D" parent="Platform"] +position = Vector2(-35.5, 194) +shape = SubResource("RectangleShape2D_go701") + +[node name="Platform2" type="StaticBody2D" parent="."] +position = Vector2(2118, 133) + +[node name="MeshInstance2D" type="MeshInstance2D" parent="Platform2"] +position = Vector2(-35, 194) +mesh = SubResource("QuadMesh_go701") + +[node name="CollisionShape2D" type="CollisionShape2D" parent="Platform2"] +position = Vector2(-35.5, 194) +shape = SubResource("RectangleShape2D_go701") + +[node name="Platform3" type="StaticBody2D" parent="."] +position = Vector2(1385, 233) + +[node name="MeshInstance2D" type="MeshInstance2D" parent="Platform3"] +position = Vector2(-35, 194) +mesh = SubResource("QuadMesh_go701") + +[node name="CollisionShape2D" type="CollisionShape2D" parent="Platform3"] +position = Vector2(-35.5, 194) +shape = SubResource("RectangleShape2D_go701") + +[node name="Box" parent="." instance=ExtResource("3_4wyf3")] +position = Vector2(1808, 48) + +[node name="Box2" parent="." instance=ExtResource("3_4wyf3")] +position = Vector2(2500, 121) + +[node name="Box3" parent="." instance=ExtResource("3_4wyf3")] +position = Vector2(2500, -108) diff --git a/sidescroller/scenes/world.tscn1658547053.tmp b/sidescroller/scenes/world.tscn1658547053.tmp new file mode 100644 index 0000000..6a97af4 --- /dev/null +++ b/sidescroller/scenes/world.tscn1658547053.tmp @@ -0,0 +1,11 @@ +[gd_scene load_steps=3 format=3 uid="uid://21dnwl0rfjcd"] + +[ext_resource type="PackedScene" uid="uid://c3w3n7ysd02bd" path="res://Scenes/Player.tscn" id="1_go701"] +[ext_resource type="Script" uid="uid://d2jx8gdq5o5d7" path="res://Scripts/player.gd" id="2_5a7ea"] + +[node name="World" type="Node2D"] + +[node name="Player" parent="." instance=ExtResource("1_go701")] +script = ExtResource("2_5a7ea") +speed = null +gravity = null diff --git a/sidescroller/scenes/world.tscn1742165030.tmp b/sidescroller/scenes/world.tscn1742165030.tmp new file mode 100644 index 0000000..8af8b4a --- /dev/null +++ b/sidescroller/scenes/world.tscn1742165030.tmp @@ -0,0 +1,9 @@ +[gd_scene load_steps=3 format=3 uid="uid://21dnwl0rfjcd"] + +[ext_resource type="PackedScene" uid="uid://c3w3n7ysd02bd" path="res://Scenes/Player.tscn" id="1_go701"] +[ext_resource type="Script" uid="uid://d2jx8gdq5o5d7" path="res://Scripts/player.gd" id="2_5a7ea"] + +[node name="World" type="Node2D"] + +[node name="Player" parent="." instance=ExtResource("1_go701")] +script = ExtResource("2_5a7ea") diff --git a/sidescroller/scenes/world.tscn5787324462.tmp b/sidescroller/scenes/world.tscn5787324462.tmp new file mode 100644 index 0000000..e34444e --- /dev/null +++ b/sidescroller/scenes/world.tscn5787324462.tmp @@ -0,0 +1,32 @@ +[gd_scene load_steps=5 format=3 uid="uid://21dnwl0rfjcd"] + +[ext_resource type="PackedScene" uid="uid://c3w3n7ysd02bd" path="res://scenes/Player.tscn" id="1_go701"] +[ext_resource type="Script" uid="uid://d2jx8gdq5o5d7" path="res://scripts/player.gd" id="2_5a7ea"] + +[sub_resource type="QuadMesh" id="QuadMesh_go701"] +size = Vector2(1000, 100) + +[sub_resource type="RectangleShape2D" id="RectangleShape2D_go701"] +size = Vector2(1001, 98) + +[node name="World" type="Node2D"] + +[node name="Player" parent="." instance=ExtResource("1_go701")] +position = Vector2(601, 137) +script = ExtResource("2_5a7ea") +speed = null +gravity = null +jump_force = null +fallvelocity_cap = null +max_air_jumps = null + +[node name="Platform" type="StaticBody2D" parent="."] +position = Vector2(604, 135) + +[node name="MeshInstance2D" type="MeshInstance2D" parent="Platform"] +position = Vector2(-35, 194) +mesh = SubResource("QuadMesh_go701") + +[node name="CollisionShape2D" type="CollisionShape2D" parent="Platform"] +position = Vector2(-35.5, 194) +shape = SubResource("RectangleShape2D_go701") diff --git a/sidescroller/scenes/world.tscn5829515682.tmp b/sidescroller/scenes/world.tscn5829515682.tmp new file mode 100644 index 0000000..a8aa557 --- /dev/null +++ b/sidescroller/scenes/world.tscn5829515682.tmp @@ -0,0 +1,27 @@ +[gd_scene load_steps=5 format=3 uid="uid://21dnwl0rfjcd"] + +[ext_resource type="PackedScene" uid="uid://c3w3n7ysd02bd" path="res://scenes/Player.tscn" id="1_go701"] +[ext_resource type="Script" uid="uid://d2jx8gdq5o5d7" path="res://scripts/player.gd" id="2_5a7ea"] + +[sub_resource type="QuadMesh" id="QuadMesh_go701"] +size = Vector2(1000, 100) + +[sub_resource type="RectangleShape2D" id="RectangleShape2D_go701"] +size = Vector2(1001, 98) + +[node name="World" type="Node2D"] + +[node name="Player" parent="." instance=ExtResource("1_go701")] +position = Vector2(601, 137) +script = ExtResource("2_5a7ea") + +[node name="Platform" type="StaticBody2D" parent="."] +position = Vector2(604, 135) + +[node name="MeshInstance2D" type="MeshInstance2D" parent="Platform"] +position = Vector2(-35, 194) +mesh = SubResource("QuadMesh_go701") + +[node name="CollisionShape2D" type="CollisionShape2D" parent="Platform"] +position = Vector2(-35.5, 194) +shape = SubResource("RectangleShape2D_go701") diff --git a/sidescroller/scripts/player.gd b/sidescroller/scripts/player.gd new file mode 100644 index 0000000..e7a33a2 --- /dev/null +++ b/sidescroller/scripts/player.gd @@ -0,0 +1,183 @@ +extends CharacterBody2D + +@export var speed = 350 +@export var gravity = 40 +@export var jump_force = 800 +@export var fallvelocity_cap = 1000 # How fast the player can get when falling +@export var max_air_jumps = 1 # Number of total jumps allowed (1 = normal, 2 = double jump) +@export var crouch_mult = 1 +@export var sprint_mult = 1 + +@onready var ap = $AnimationPlayer +@onready var sprite = $Sprite2D +@onready var cshape = $mainbody +@onready var crouch_raycast1 = $crouchrc1 +@onready var crouch_raycast2 = $crouchrc2 +@onready var wallrun_raycast_left1 = $wallrunrcleft1 +@onready var wallrun_raycast_left2 = $wallrunrcleft2 +@onready var wallrun_raycast_right1 = $wallrunrcright1 +@onready var wallrun_raycast_right2 = $wallrunrcright2 +@onready var wallcheck = $wallcheck +@onready var floorcheck = $floorcheck + +var air_jumps_done = 0 +var is_crouching = false +var stuck_under_object = false + +var wallrun_available := true +var wallrun_timer := 0.0 #:= bedeutet, dass der Typ fest festgelegt ist (z.B int, bool etc.) +var wallrun_time := 1 # Dauer des Wallruns in Sekunden +var wallrun_speed := -250.0 # Geschwindigkeit nach oben (negativ wegen y-Achse) +var wallpushoff_force := 450 # Stärke des Abstoßens +var wallpushoff_timer := 0.0 +var wallpushoff_time := 0.5 # dauer des pushoffs +var wallrunning := false +var pushingoffwall := false +var wallrun_direction := 0 # -1 = links, 1 = rechts + +var standing_cshape = preload("res://resources/player standing cshape.tres") +var crouching_cshape = preload("res://resources/player crouching cshape.tres") + +func _process(delta): + pass + +func _physics_process(delta): + var horizontal_direction = Input.get_axis("move_left", "move_right") + + if !is_on_floor(): + velocity.y += gravity + if velocity.y > fallvelocity_cap: + velocity.y = fallvelocity_cap + else: + air_jumps_done = 0 + wallrun_available = true + + if Input.is_action_just_pressed("jump") && Input.is_action_pressed("move_right") && wall_detected_right() && wallrun_available: + start_wallrun(1) + elif Input.is_action_just_pressed("jump") && Input.is_action_pressed("move_left") && wall_detected_left() && wallrun_available: + start_wallrun(-1) + elif Input.is_action_just_pressed("jump"): + if is_on_floor(): + velocity.y = -jump_force + elif air_jumps_done < max_air_jumps: + velocity.y = -jump_force + air_jumps_done += 1 + + if wallrunning: + wallrun_timer += delta + velocity.y = wallrun_speed # Bewegt nach oben + + if wallrun_direction > 0 && !wallrun_raycast_right2.is_colliding(): + ledgedetected() + if wallrun_direction < 1 && !wallrun_raycast_left2.is_colliding(): + ledgedetected() + elif wallrun_timer >= wallrun_time: + wallpushoff() + + elif pushingoffwall: + wallpushoff_timer += delta + velocity.x = speed * 0.3 * horizontal_direction + (-wallrun_direction * wallpushoff_force) + + if wallpushoff_timer >= wallpushoff_time: + pushingoffwall = false + + else: + velocity.x = speed * horizontal_direction * crouch_mult + if horizontal_direction != 0: + switchdirection(horizontal_direction) + + + if Input.is_action_just_pressed("crouch"): + crouch() + elif Input.is_action_just_released("crouch"): + if above_head_empty(): + stand() + else: + if stuck_under_object != true: + stuck_under_object = true + print("player stuck under object") + + if stuck_under_object && above_head_empty(): + if !Input.is_action_pressed("crouch"): + stand() + stuck_under_object = false + + move_and_slide() + + update_animation(horizontal_direction) + +func above_head_empty() -> bool: + var result = !crouch_raycast1.is_colliding() && !crouch_raycast2.is_colliding() + return result + +func wall_detected_left() -> bool: + var result = wallrun_raycast_left1.is_colliding() && wallrun_raycast_left2.is_colliding() + return result + +func wall_detected_right() -> bool: + var result = wallrun_raycast_right1.is_colliding() && wallrun_raycast_right2.is_colliding() + return result + +func start_wallrun(direction: int): + wallrunning = true + wallrun_available = false + wallrun_direction = direction + velocity.x = 1000 * wallrun_direction # An Wand haften + print("start wallrun called") + +func wallpushoff(): + wallrunning = false + pushingoffwall = true + wallpushoff_timer = 0.0 + wallrun_timer = 0.0 + print("stop wallrun called") + +func ledgedetected(): + wallrunning = false + wallrun_timer = 0.0 + +func checkledgegrab() -> bool: + var result = wallcheck.is_colliding() && !floorcheck.is_colliding() && velocity.y == 0 + return result + +func update_animation(horizontal_direction): + if is_on_floor(): + if horizontal_direction == 0: + if is_crouching: + ap.play("crouch idle") + else: + ap.play("idle") + else: + if is_crouching: + ap.play("crouch walk") + else: + ap.play("run") + else: + if velocity.y < 0: + if air_jumps_done == 0 : + ap.play("jump") + elif air_jumps_done == 1: + ap.play("double jump") + elif velocity.y > 0: + ap.play("fall") + +func crouch(): + if is_crouching: + return + is_crouching = true + crouch_mult = 0.4 + cshape.shape = crouching_cshape + cshape.position.y = -31 + +func stand(): + if is_crouching == false: + return + is_crouching = false + crouch_mult = 1 + cshape.shape = standing_cshape + cshape.position.y = -44 + +func switchdirection(horizontal_direction): + sprite.flip_h = (horizontal_direction == -1) + sprite.position.x = horizontal_direction * 4 + diff --git a/sidescroller/scripts/player.gd.uid b/sidescroller/scripts/player.gd.uid new file mode 100644 index 0000000..aedd216 --- /dev/null +++ b/sidescroller/scripts/player.gd.uid @@ -0,0 +1 @@ +uid://d2jx8gdq5o5d7