From 8cf357ca689ea5eac2b1b8b35f95675d5e8f9e5b Mon Sep 17 00:00:00 2001 From: Kayne Ruse Date: Tue, 20 Jan 2026 12:00:00 +1100 Subject: [PATCH] Added WIP bouncy platform --- boxboy.xcf | Bin 3929 -> 0 bytes boxboy/boxboy.gd | 8 ++++++-- boxboy/boxboy.png | Bin 808 -> 705 bytes boxboy/boxboy.xcf | Bin 0 -> 2997 bytes platforms/Bouncy.tscn | 29 ++++++++++++++++++++++++++ platforms/bouncy.gd | 6 ++++++ platforms/bouncy.gd.uid | 1 + platforms/bouncy.png | Bin 0 -> 1372 bytes platforms/bouncy.png.import | 40 ++++++++++++++++++++++++++++++++++++ platforms/bouncy.xcf | Bin 0 -> 2502 bytes project.godot | 5 +++++ scene.tscn | 8 +++++++- 12 files changed, 94 insertions(+), 3 deletions(-) delete mode 100644 boxboy.xcf create mode 100644 boxboy/boxboy.xcf create mode 100644 platforms/Bouncy.tscn create mode 100644 platforms/bouncy.gd create mode 100644 platforms/bouncy.gd.uid create mode 100644 platforms/bouncy.png create mode 100644 platforms/bouncy.png.import create mode 100644 platforms/bouncy.xcf diff --git a/boxboy.xcf b/boxboy.xcf deleted file mode 100644 index cb99f2c88e12189f5fd64dc9031215cd7cd7c124..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3929 zcmeHJ+int36g@LQxmQ}D#>9t%)`UKgzy}zKeK0jKF)@Asg<+V4O9QC%2|vLH<2Pv1 zzw^~(Tx-r;&J?7nwa^$hS+m!^40Fz&nLXQfhG%l#>B$d`W>Y{~KFGfUdw^l!a39DV z!$m;KKoZCS2R>(B1^59JZTxk;Gae4D(G0d=aQ}E>wP#jWespGi`SRrT8%9cAsxxfc zR^6UBUHX`PQJc=r2bP?U2Tu1WSL@lG@nAfWHBZ$i_Gw!-ykGMO;nNl2ru2Rc&!=bY zjx(}lvjOWoX8A__{m7X~XVmFiQ=T#I^`_QLdifexG@i^gYhp~4kw4U&0d0X0+~dyM zzGZp!F=0`502bB-s^rf<;fUe`^z*E&&!NO)jX%;jZw&J(5(s!+;{}ZuHGU7A*9#;K z!t?q6Pkjz04#`~z^b?H-4@Uw%P0YDww7>~}UFH|?Kw2OK#Jo^ih=p+?cHL48Y4@kV z)lIlliY7rf>%F|D)%Kn!y2K*+Ikp34n`-H4(4?ZNjeA$GI$mw&_`68F!h=|HQ)0)h ziiBIn!q;gNdp41ifzBd-*$(fSN(=9%%D$V?tM;@UPhjtQ4Ic_1XzPFG-_#xF$Kqxm3e|X)8+^Q}-?Vur#V>ubM2P?Z diff --git a/boxboy/boxboy.gd b/boxboy/boxboy.gd index b5087af..fb8c79b 100644 --- a/boxboy/boxboy.gd +++ b/boxboy/boxboy.gd @@ -1,4 +1,4 @@ -extends CharacterBody2D +class_name BoxBoy extends CharacterBody2D @onready var _sprite = $AnimatedSprite2D @@ -35,6 +35,7 @@ func _physics_process(_delta) -> void: #move with a maximum value if move_dir: + _sprite.flip_h = move_dir < 0 #fancy velocity.x += MOVE_FORCE * move_dir if abs(velocity.x) > MAX_MOVE_SPEED: velocity.x = MAX_MOVE_SPEED * sign(velocity.x) @@ -43,7 +44,6 @@ func _physics_process(_delta) -> void: elif velocity.x != 0: velocity.x = log(abs(velocity.x)) * sign(velocity.x) - print(velocity) #do the thing move_and_slide() @@ -58,3 +58,7 @@ func _on_animation_finished() -> void: func is_airborne() -> bool: return !is_on_floor() func is_airborne_rising() -> bool: return !is_on_floor() and velocity.y < 0 func is_airborne_falling() -> bool: return !is_on_floor() and velocity.y >= 0 + +#external actions +func apply_bounce() -> void: + velocity.y -= JUMP_FORCE diff --git a/boxboy/boxboy.png b/boxboy/boxboy.png index 74f5757280fe2edd7aac702ae8ec6d7dee806578..a763ca1e4935017dd78d5d105c3b8a886ccd6d04 100644 GIT binary patch delta 523 zcmV+m0`&c;2Ehf87YZN<1^@s6qMd$(ks%=tr6LuF78G#^Se@*mB94(zK!2JAG~G7S z$%L5At%{*n1Q5Xh;uw*cWz0!Z3cmGqPu)~^aX!nx@6YN}^A-aFBJnIUOq+OvczV+| zIPVijSxHuj&xyxPT9EjW>x##3oQp0Cd}h?lr00pF#A307l@4YlQzM=tj;WeX^M$O( zD(5ZETBXKXd-4~C^ZLp%*MI2@BZ);UL4pVcHIz|-O?j1}lVTxF_X!{Wkn5MorI4!( zMvetkp+R>2;D7KtTdOcR;Y|uBfbJK^`4|O4yFjzwu!&%l-5_E#Ig%qQvf zwiY`A`nQ3L>$axs0hc?#;FBSnvMUAY2!#Uhen#Jv10uIT@0yoe>m(kh4?u>pO5Fel zhrn2oX0Q9ayQed^e|uW_{Q%YYa?bju1@M!y0Wt^^7cU3_X+|%T>;Wi$m`OxIRA}Dq zm@y83Fbo45)c=1utOyCIG)^+~JThSQVy6NdTKUIw8#VgvZyPU*$OMOx`d{O40pN51 zbE%BJUq`d}{>${I0+QAGpsbj9r7sBp000000OdU$xwAWbNdN$9<;~}H60ius)gLsG zNoD$5aa66jD*O=wz)Mpu9Nnxqr}fi-kgD1TcUh#1N91Wz0!Z3cmGqPu)~^F+R(`@6YN}^A-aFB5|A>wk1ck;EdFAVGwJ8p^1^ro76~NwJWo`-G2w#Pv($Qpi;X zBgX=&&>*{h@IUyStyP$s^d^N9KPFL_LKB_ zTZ*_DEHghBy$KcjET0fVm(kh4?u>pO5Fel zhroD|X0Q9ayQed^e|uW_{Q!f@a;-Dzrlgay0Wt^?7BvxmD>;Wi$|4BqaRCwC$ zn!ysoAP7XI%W& zyj*VpB>(^b{5}rmj#Ds^GE+QpgKtvbN1ricpkS2~}DUT{KkSe{v+3{h@rai;-d!Q#&T-0cPKK)&~bk$iFR>NP9XsMVkJ zJh$b|{Q-0AK5H(5sK;e>R@YWixWExp&x;?daFpL-}w`xg(<=%ge=4 zukTMi*=Zv>PDOFhdOP(4=}-G3cfmVm!{NdWWYlkPMbph3vtia;1;tY%sc9EP0-WQ< zo002A>tiFLZ2(-@5NMD;JH-`?4=~TWN->8Mj|~36;M^GY( void: + print("collision") + if body is BoxBoy: + body.apply_bounce() diff --git a/platforms/bouncy.gd.uid b/platforms/bouncy.gd.uid new file mode 100644 index 0000000..951fc77 --- /dev/null +++ b/platforms/bouncy.gd.uid @@ -0,0 +1 @@ +uid://b11al8kjnoveh diff --git a/platforms/bouncy.png b/platforms/bouncy.png new file mode 100644 index 0000000000000000000000000000000000000000..25caf2c81d4393913aa42728bb674d47df8ff226 GIT binary patch literal 1372 zcmV-i1*7_jP)EX>4Tx04R}tk-ba9P!z>aQ%glE4lO9+kfA!+rHVM#DionYs1;guFnQ@0G-*jv zTpR`0f`cE6RRMq8!y!-yFLA78qz$X$XSlzIQH;898 ztvcs@;s`6tD)Bk-q(K)Xe&o91@*C%p!vfEY7}?A`afDbb^{~>ztZZn+)5K9#(`&eF{H4FB}fpVpn(diun?nNC&fgD&XXSgQO7TlOCeVU zj2sK7L4)l0!T;d*Y|Y|S+)WB4fxwGxe~bgcU7+2x?eAmTZl3`DXW&Zj`fDv<_LKBx zSBoA2L)*Z`byrjNfXf|V?di<#2baxqwI#b~{Qv*}24YJ`L;yhm2>_uo&|-H0000SaNLh0L z04^f{04^f|c%?sf00007bV*G`2kHS67d94PX3|su000?uMObu0Z*6U5Zgc=ca%Ew3 zWn>_CX>@2HM@dakSAh-}0009sNkl60D>R@D&8|ZBR(4gT=?F_6Lmg* z)#eKiTRXP7IXV6GNCNBQpDtQE-OB4f&(mv?J)lJb0Abyo2tqJ25s5TlDK@MZOI79a zlO}s>eRHz%=m3E)7N6hA>c6g;@0V0~-2vNBfpqo>yJS>Qf^U$a07iv8dwW(D@7&#( zezcYde7^YXzRiBWOf@h8Bw-o=3_v-k3aKseniLCb0(quN6Ln_zXY~Gqo70c4@Us&? ze$DFFTU0|!fqg#>0BHw$OR7&iR3uhwFhH793_vK108!}m@egn2-tOH1W;6gw)pacZ zS^)+{&`_1qX6zDZZi7OALw)7+s3_r7M6a1Q`!{lLU!Eeu0t3*3Fba?Y6^2_eCPpCC zr8g+j2$d5)H!+A`odBhzuOQ^j-l^OHP~KNd!K1Vu)ex0>2@2kgUnFOTjB-cI2)IK3 zg31_dV8M_r?>L1Pfa28|k}CpvRH%iZNGvEae|n5fZzxEDr`V9A!>x+(jv*i4b{3K% zumo2GqennbgxZuykRsWrN=W31s35eAv9Sns*p{o#7H$&&t}p&@-|OEl)0=+mKv12G z-9&VAKQyIzADAE6{%UcmLO_PP{NTYi(@(A>Bf5U#*&T2GxQ2F8GP)h3CvadWmb@^M zo7-@m5iyN(=bIg2Wec;mc=ztN`)Ae;Sn=9;`=WfZ<@L^asHPoKK|j|@&^Gi94%8WV z2dq$Ay!S-5u>Rd-_0f?(qqU{&b7)_0xKA#rez}x!0LW1N&?(=vYC~_~UM#Z?$70bZ?8)k%6ag6hoB#=d7D%N9IV(MG%E=ml)_7%cB? e?X4d9JN_5Uj**zMdHS>f0000~o3>GtM%rGLNI?oxA0t(29-2NxYSi~g1kB=qZG7Q=$3O_p zbEW)-60iXqY#<>;Nz(>}MhOi{sG0}JL)A7B1qHBox8JO7>a>07nDNdzGxNGvzihC3KC)BM0x}rMh z_j?0TtQk39KOOc~MZGm@i!WNIe)jp(0ZpwuiB;PxtHPq9 zDd3B$zCd-IH$oY~+S-UWs#@_ScHVq7m^hb+5H4B3w0~T(R$9YkZnTne80pleM7Ka6y8;|@Km8R3c`i(tNEw(t>U}zD)K~eUtv4Vt?ixN zeX#*Pm>r1q^>n+~uaV}q&aUpB-oE}=Y+z{U((vVx!TuhFJqtxzTHD$?y1Ki2;T#wk z92^=R9{Fk{)+4g@#z<3hb8BmRhn3sg-ya(sx^}>MSybo@)ea3J~E) zQ&S6?ZSSNAK*Ty&ZH>1OK`g?>Ry(_Tc(2*P*?MhFjh7&(h{XaBRwG@VZ6bT7!4Ckq z(P(2BB`{BrXlYiMp#A2p(KM?^Ou;JO)D(3wTir`vzOP^-4=GGxFFbCSqfC({QIhQr zr@P$6bdS5tCJCZosZG@Fu5yKCJuXF(W$c-fBI=T}Tx5H0yDUkvLo!6kCT4A-sJJ-G zx&bG1$+V(#k|;`&n3Y_tToGjf+cu~u>9j5GA<69ovMF)IOF$Pzz09s~*@WsS=_v5n zlkBo0D|Xo+9yt+|ZK5GLMWswuq%DF&uET>UN|xm;#o>>OTe6#htE^x*4$DY!FQQjZ~o-C)Qcv47hPtVMx zXVU3RW_Fg(>EEvWBC_nm8xxb0d`d{_sp)AxW2SjVAn*L0$DHlnPbLzU-%Rq9FfGgo z@blT-x%q`vwvx0Z_ynKYO{S75D_hT`;T7g~Zm!)PACJe$J!zsiPwi0gwB_HMTb>vn z8|QHWeqnNFDoN=nRM)|c&u%YFT)Q?l27pAuHt}+DDjxv9fX23GZ`>M%pYVA?KmlRu zZ+1dPzxOb~ukkS>K5k2xaOb9yQy^d>|Bv+b$LwC5((?cbFfgt51+=Hn%&u^@b3gqJ zMU3%rJwYu92;eDwdhwCSeqa3|F=~0omnocg6`Ed;|`s%#}a-unEK7r!;?FVZ( zLLAnu>(dkC@yYbfJIg;IR$+T5h8Nejb2f7?x4phNd;RG5D1u5r-R zjk~8rW?bDpWE#6yIWyx&%v_vx8b{#j+&F3)8^%#nfEor?`UZJ&Mkhm@8ONJf$i&;W zj|c4iI<9}Qpj%-7XWR3ox4~N-^#ud!*{VoAxeCAJ`!`q*_VPCvdH??nrXr_^SzfT| z_M@A@28DbCrAw?-ikA