From 6b0843a725b09ff45e2e6b006a5c53b62e7a824d Mon Sep 17 00:00:00 2001 From: denizk0461 Date: Tue, 23 Jul 2024 18:22:05 +0200 Subject: [PATCH] added a basic ball that properly inverts velocity when colliding with a world boundary. my balls are getting stuck on each other tho --- balls/bal433B.tmp | 8 ++ balls/ball.gd | 17 ++++ balls/ball.tscn | 8 ++ balls/basic/ball_basic.tscn | 15 +++ balls/basic/basic.pdn | Bin 0 -> 6356 bytes balls/basic/basic.webp | Bin 0 -> 1094 bytes balls/basic/basic.webp.import | 34 +++++++ boundaries/world_boundary.tscn | 10 ++ scenes/boundary.gd | 3 + scenes/level.tscn | 161 +++++++++++++++++++++++++++++++-- scenes/world_boundary.gd | 9 ++ 11 files changed, 255 insertions(+), 10 deletions(-) create mode 100644 balls/bal433B.tmp create mode 100644 balls/ball.gd create mode 100644 balls/ball.tscn create mode 100644 balls/basic/ball_basic.tscn create mode 100644 balls/basic/basic.pdn create mode 100644 balls/basic/basic.webp create mode 100644 balls/basic/basic.webp.import create mode 100644 boundaries/world_boundary.tscn create mode 100644 scenes/boundary.gd create mode 100644 scenes/world_boundary.gd diff --git a/balls/bal433B.tmp b/balls/bal433B.tmp new file mode 100644 index 0000000..71d2861 --- /dev/null +++ b/balls/bal433B.tmp @@ -0,0 +1,8 @@ +[gd_scene load_steps=2 format=3 uid="uid://d2r0ip6xy3a2"] + +[ext_resource type="Script" path="res://balls/ball.gd" id="1_ija2k"] + +[node name="Ball" type="CharacterBody2D"] +motion_mode = 1 +floor_stop_on_slope = false +script = ExtResource("1_ija2k") diff --git a/balls/ball.gd b/balls/ball.gd new file mode 100644 index 0000000..21e5171 --- /dev/null +++ b/balls/ball.gd @@ -0,0 +1,17 @@ +extends CharacterBody2D + +@export var speed: float = 5 +const _speed_mult: float = 200 +var _direction: Vector2 = Vector2(1.0, 0.5) + +func _physics_process(delta): + velocity.x = speed * _speed_mult * _direction.x + velocity.y = speed * _speed_mult * _direction.y + + move_and_slide() + +func invert_x(): + _direction.x *= -1 + +func invert_y(): + _direction.y *= -1 diff --git a/balls/ball.tscn b/balls/ball.tscn new file mode 100644 index 0000000..71d2861 --- /dev/null +++ b/balls/ball.tscn @@ -0,0 +1,8 @@ +[gd_scene load_steps=2 format=3 uid="uid://d2r0ip6xy3a2"] + +[ext_resource type="Script" path="res://balls/ball.gd" id="1_ija2k"] + +[node name="Ball" type="CharacterBody2D"] +motion_mode = 1 +floor_stop_on_slope = false +script = ExtResource("1_ija2k") diff --git a/balls/basic/ball_basic.tscn b/balls/basic/ball_basic.tscn new file mode 100644 index 0000000..fc7498e --- /dev/null +++ b/balls/basic/ball_basic.tscn @@ -0,0 +1,15 @@ +[gd_scene load_steps=4 format=3 uid="uid://sl3jbnopo0yh"] + +[ext_resource type="PackedScene" uid="uid://d2r0ip6xy3a2" path="res://balls/ball.tscn" id="1_ffml1"] +[ext_resource type="Texture2D" uid="uid://cxi0fqy5sajh5" path="res://balls/basic/basic.webp" id="2_4dnuc"] + +[sub_resource type="RectangleShape2D" id="RectangleShape2D_isusp"] +size = Vector2(50, 50) + +[node name="Ball" instance=ExtResource("1_ffml1")] + +[node name="CollisionShape2D" type="CollisionShape2D" parent="." index="0"] +shape = SubResource("RectangleShape2D_isusp") + +[node name="Sprite2D" type="Sprite2D" parent="." index="1"] +texture = ExtResource("2_4dnuc") diff --git a/balls/basic/basic.pdn b/balls/basic/basic.pdn new file mode 100644 index 0000000000000000000000000000000000000000..27a589856139f130d65df95766786691a48c5d03 GIT binary patch literal 6356 zcmd^Cd9)kVd4Ixwi@fo?1h8Yr&kqO{3qsRniw|i{k>(_C*s>${B>$Iv~XUCe2%H+6^ z^~F;LLJ}3(3rZ|aR|9kf)bKEDcm3W1eDVoQ=)j6MA4{i@uvbwr&Y6TAsYa5v`Mh3# zr)IR>g(M9-BV3?b zrHl_x`#i~jL(NfP8yIiZ>TX69kOJBj3;9?kz~~-EXHY{WBnou~SUjVs9hF7{*BlHTCJX5t%0I(PZ}w; zS+biGl1Q#BRH;^`t*|LvPFSOYhRIGcocFjomLBa7M9XxUu%lg!sD-)>Owz6SR3=F1 zp?KMe3pi`b#v2aWU8G4$qLWhDX|rQ0OgWEhKB%5_3A6xL88{vay*J6Sg0 z@+&P{DO9xc30JJ0C*!D=FJtXcJyr|5NG$H>YcgsjyHuqdZ$yn0l?#!2wQF~f?EsG@ zQwkaG^xBdqE}~6VcV#fO?F$$&+^|M!Db?Cd)Ua06jry@3!n^I7ox{QhhrWtl>_?H5?B`+YITC;*Cg=OEu+|Q%`bEzMKWi2sNUpgR&Bx zwxTL&q!pB#0-b3!0h6>Kw@Ae(ml;RdYIExOvPOh5<+iIA5@V4>v>Wx3T_aU=#;w)} z*={=!swEZ4h*03Vu}nTLNvUj>)@lVu9MPz>C^Ml5rKSo*RlppS94{&@PgAsIb2gnt zU8zbY+N;Mhh{2UZLN=eRI;y@=8BO(K~!=!PnnLTnzZE9)AeSvq17UI6s^k@-6&8pVniE`T%Z(W1&u7wc#*bQ z0vy5%J-un8B1*2~jVipMl4_4K#8Qw~T1+EWEEGa+iOzP>W>m~IM5aTxdBoN(1TC05 z*hryiF@yWPI#EY+4y+S!HqvOiRtjWww%$-{7Au3)DGY2eEud^05g5C!Sf!9Nr6pn+ zUnv^HqS2_!UhlZ1o(s_ucqbNgasfJKC_W+R;qz^u)eSDRXoNykjtwJ#rJ^Ql6ffg-St7l- zPs_7Hfi1CIj4K8WF5XEP9<&w@Ig71Mz=9{M1mkg5oK%id6OBl@C1jDX!q__2yb<9O z9V{&s^Syj6SFd)8NJ+-Su1TRjE+eduHWFofzR0Dk8NMA75_Gg{^_LR0nB6N$RjtyjbVa1zW7CSp1Ui+T zlX8b08t3aGEr&l_G0HVw3`8`RP9cWFVDO$VP-6XJgcmq9R&rUY;F4-Bw&!Wt>Rul% zBMmA?#%gH9-ZJoZxKvTqY&B$4iq1+X#kboXKF4*84CB(A!DtRo zmh!P8Ci%M_)=|wByfrdd^eUu{h@h2@QFjK(d^=vKM}?S|D^^+|IV)sxexgz%ZFZ82 z6f99vDtJl}r4~_8Emn8hDTDNqiFUD2YzZXobbHDP0c*Q>gu>NMq)JBoc}v2ZiqST_ z6s_4C?nuu`G?hdnfmj+9N5Eq>INV#Tc|n+QMUt6LE*n#$HL@J`w0#0C_N=8WQ+Lqe zo?3V4G|NX?c(O)h{BDd@T`|$hp`>`rn$NhscJB&dIM50Bc}Ca z-R~bCv#wufJr>Zd#}bA0119hr7&rtG7u2S# z@};5a9A&Vd!3<3&FXqpZmBqTsD-^FWC9tHh#@E$>xdQ`p=9s=R8ydJ3UWp2-26r+t zvMAkE!PJSF4eT||wEeOq@tg*dA9aG@8@wWL6JXI> z24VLXa|Y)OH5mmQ&8SyVm@XvJG9^H=PoCAG3O#O9Fgx1w&7JZnTE`uW8oQmM<`EdOa*_oGEqk(<1t3A{S2>Png6_|g8L z<#-sGKi$!fA`7PL)3Ib`=5dI=@0t6}KcLStOLyWkwa@^U&VD03y$nc)X=G&0?4fDp zeR(24-xZz)-Y_o*;<%Gu0YM?Vn)_5xa)~#=I5qdnk~f%4C#{%$_2oHg?qplvc89ee>eq5t9izLE7E*woa(2t>5KZAUB z7UUo_@;~unfSLV^F$gX751BT!s}XRoDq7WvnX8PN=;vJ{CBDon3SR=lW|IjT|0vu& zET&;dbU(R)&o4=GV}fP@**8HRAf?9%F~RfgkHOipY(C3mem^lM1l$^Ls`))2ADQ z|B^MIe4umT#KF=0CtEy|=fAUP=g%4k{725hn~D&OsCIg^Vx-0jxD%q)kDdZ4?X+hgNs*g zUVPf-#Sd&bh$D$RmmL+qdthJe?n@)&H(XS?T%LUEcbA;$+_iX{d+EiWymk2Lb5fbd zZ`tg=<~#4~z^{2`;)x?WhV~q2PQJfee(I5l*DrnI{kMPSU!c5s;fkYK>4#U{xUza? zNKEb?yDN~~bn}gtJ?FgUr*>k$J@O0v+Fu;GXj1ri+pY_zc5U3cY|+>$Z{7UJHsXan zf4=CdMNgfxVI1kn^(k`M#v>i)?hpR)kq@3d=h3@1YBq|De#}eYYs2@-ulIN%2&II+qR0sH-w*CIiGoZ6Lz)#2j5zB>majt;x5y^uMO|J zaN)jfOZUI*sZ1SNec2C||HG#P@+3o09T zzIV%kbAPsV)OXF%CqC_*ziX+)E`RT3Dtuda{@n*xoqKRlzUTVE13RhP^ix+KwCvt{ z|HJni+!gQr^ugD*6rS{aaL*er9bSr^a_{B-i+4S9(J33Zy>hSd<{i85zy7y}9@r~M zH~yu;EqQ(NLGj}GPjA2FzK@^m-Mjhjhj#w*ffxSmybs3??F_ch?HFf1`trF?v+CM| zkMFR&_MyIfYuF`jWOqNXdjDg!8@};&$JqYK)XR_Uy=UWFyLVU?YPSS;FzUKrZ!?~= n9{ITPAJ@M9>XZA4t#^Jnf6bMnzL9D1$ke+FpP#cf1G)Qe&1fH< literal 0 HcmV?d00001 diff --git a/balls/basic/basic.webp b/balls/basic/basic.webp new file mode 100644 index 0000000000000000000000000000000000000000..b6e89fc51886ff0028e0a644645c93e2b6672623 GIT binary patch literal 1094 zcmWIYbaS&~VPFV%bqWXzu!!JdU|^5{VnZ-;^a=1d4&*Twh~5l)V#Dd-z!fx4L`H!T z$T|czRAcm>NuHr{6Ze-fF&XSLI@!78zB)R~)y4 z1?)FIe5q(<_O|glUrzOs1IOZ~@LD9rf3PdK@a6e*Ke_a(%Kqxr4Ou&lckmdWR+xQO zYj)PQ8#@0?C(P|Px6A!Bv-|v^`vD)j9=Ug&2y|Jl#LN=8>_m#|R)G)|*Q>%IVXj}r zN;n+Fg-Wbk%|%Oc{)H&auwl8(Ti-OvKeNg60s{lkhYAHu3=9H1409Q^j2Mg<>}P=~;MfRC?y0B9qQ4p$BEL7l;2GS#aXypF>CP zrrWPQnrx^4PR`Bz_K~=#W#*r6IjjkbESff9jdt+^opRw%ewtx(|9&iHe|K)zy3I>U zwXU=6N!d~J%mL0 z4ZVIV#GM5$KmBg=a!%S2-$dn`f~JxT38Uh9#r{LUmy{h>yOu#1Fr315|;)b_Is z#sR+kTw%`=mo3)U)?2!@pwY$u>i^`Qztzp!>y5WH1m^tl`{&mtI$`w^S^57}m-rns zi~AdX=C83&pQO3@eXXUs?eB!SsXC`0=zm(w$6+G(^ZeWu*S0))Z5N<-I{WcnqvqA0 z`!z(?_sy*`_4vM5<-H>)FEKE%rxpVTkY-~LVq|7u1hPO_ijfsehXL8r zP<9-UtpQa7Ot1`wj7$uIKspVGGuv6f>MMY35J&)GkU22AATcwqL@zJ3M8Q