From 28f8bfa8e411014581364d99381cbfc93fdb2dd8 Mon Sep 17 00:00:00 2001 From: Adam Date: Wed, 11 Feb 2026 15:43:20 -0500 Subject: [PATCH] made everything more accurate --- assets/ball/ball-kenney-accurate.png | Bin 0 -> 1664 bytes assets/ball/ball-kenney-accurate.png.import | 40 +++++++++ assets/court/court-lines.png | Bin 0 -> 39284 bytes assets/court/court-lines.png.import | 40 +++++++++ assets/court/court-lines.svg | 82 +++++++++++++++++++ assets/court/court-lines.svg.import | 43 ++++++++++ assets/court/hoop-sprite-accurate.png | Bin 0 -> 1975 bytes assets/court/hoop-sprite-accurate.png.import | 40 +++++++++ assets/players/top-down/orange-45.png | Bin 0 -> 2319 bytes assets/players/top-down/orange-45.png.import | 40 +++++++++ ball.tscn | 2 +- court.tscn | 32 +++++++- game.tscn | 57 +------------ hoop.tscn | 5 +- player.tscn | 10 ++- 15 files changed, 326 insertions(+), 65 deletions(-) create mode 100644 assets/ball/ball-kenney-accurate.png create mode 100644 assets/ball/ball-kenney-accurate.png.import create mode 100644 assets/court/court-lines.png create mode 100644 assets/court/court-lines.png.import create mode 100644 assets/court/court-lines.svg create mode 100644 assets/court/court-lines.svg.import create mode 100644 assets/court/hoop-sprite-accurate.png create mode 100644 assets/court/hoop-sprite-accurate.png.import create mode 100644 assets/players/top-down/orange-45.png create mode 100644 assets/players/top-down/orange-45.png.import diff --git a/assets/ball/ball-kenney-accurate.png b/assets/ball/ball-kenney-accurate.png new file mode 100644 index 0000000000000000000000000000000000000000..943e61caf8d3bb6bbf9930c4ffaee8bff3d0db0a GIT binary patch literal 1664 zcmV-`27md9P)P000>X1^@s6#OZ}&00009a7bBm000id z000id0mpBsWB>pF8FWQhbW?9;ba!ELWdL_~cP?peYja~^aAhuUa%Y?FJQ@H11`SC> zK~zYIg_d7z99J2|fA`Mp?5=m$|JGi|q_OMPu9G;42x*#vT|3ZLZGl#$!U7(Uia@kd z3N5to3Ov9IBC7aP!3(K`MAbNj^r7ORR86Ss)N$Q5u@g55NgUg;*V*---Sv8Bc4y|} z!MnkAWB8T5j9d{`;@3aGt6->CeUoPqUI1!0bx|&X1>kVjN&Wi!f0EMw6?x^E<}R(h*MU3NU>C9Qd^|HT`FpAvcXM-4mh^l(L> zE0G`UYFz!SQbYkfAN!@Dnv6ixBRf_{JL08%6_Tu@Ctn+{nW+kzJ!NRw_l=%!{eJEo zlw1AFPqswx^xrB1-7VP@yArEC6#)Q46WZNe{21Wvi=n{!;}}m`)477*T`HE|Dnqqe z`$q?Uye)iFBLFw6yIl+eNX|wN9ibdPgdy+ZxVg+Bw8y=wIVaI5X z7v5V#Wv7(vp91KYzta{1^*n&@GoQ|RT_0W#_8uFH?D)e_&E=181V$=krk3#5YIh9a z)V1JT1=p466@0FFr7LXuDF9LG`GKeEYm9I9T8{$X1K6`A_iiHUEm#6C0mC_rb30h!^Ln=w*o;7 z{NzFc-8+Z*g%TCsJlTV!}TG&npJ+&8&o_8mVLIr;dmd|zY4Ycn)gJfAyW8mgZ4 zMSTWn0uWy{2~hO?u!536K(u_x`1*m!FM+0-pgY+Sw_9!opisBfxGhalf8s(a5X;!Q z{bI^G^{*@8s4r_q1Qi2v5lhBAU%3J`Ew%2+Z|}>s&#hRK1=olJ0j&7t`S04Ww^XJ{Xn{I_ zaKN)GuQx!!N%dYr48%9z>`Ge1Hc!3L}R;pSexJf(SL~yfF#TnJDeMz0N%e zgpQq!v|P`aPMI#Mfee7{YHK!QPW*YKdgS>04}8hvlVlXcIEGDSrdw63OZOm_pAxb0S(udgYl6`)w-4ji=BRXm7?+hw$-^#CTTH~G1Y%#L_gk@@4K`R82xZIRwV!;^CqYvklhMe4Xw_1 zHah9vJM4XyAqUszqt{LgQ=o;cE5ii~OQPPNrfWT?3gf}Zj9_n<` z4|EjzEJLCjH>UHZ1yC3AEP&>iyA7b^tLBYslPke9z7POVO5W6~D^+g*O8{qXMD7-0 zVdJKvr&gA1y%X>|8cOW|5lb3?B0`<#Q>?5NNWC{5-Ce#-6>`zn^pi)f+9-Yl;Cd=D zG+jLfd}8ptalUF4p*9+n(MV7l%K<2@Bn_y%tJ4)fLsQi=j#oKC`PGw0uG$(v8^OZ} z696;W;NG+IRi|Oi-SAXsa5`i50>!UxU;V_CG!2#kvIV^i6i4TxAIxNfd)N47SSQoJ z126&l4^I~cez4^mKK?sE%|t5FopAzZ9H*2zKOeXsQ2Se*;Y7^6Z@q|R$V$;wq*u+< zbf(Il$_DQ(cW_PMiTJ=;qDlN+YK#O`?na=V4!V)lt+cSXVseB40000< KMNUMnLSTYPuP}!I literal 0 HcmV?d00001 diff --git a/assets/ball/ball-kenney-accurate.png.import b/assets/ball/ball-kenney-accurate.png.import new file mode 100644 index 0000000..62e66d0 --- /dev/null +++ b/assets/ball/ball-kenney-accurate.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://vfxgx3oc6nm1" +path="res://.godot/imported/ball-kenney-accurate.png-0756708f1c1144f4e204fcfb7addc497.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/ball/ball-kenney-accurate.png" +dest_files=["res://.godot/imported/ball-kenney-accurate.png-0756708f1c1144f4e204fcfb7addc497.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +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/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +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/court/court-lines.png b/assets/court/court-lines.png new file mode 100644 index 0000000000000000000000000000000000000000..0b28d4ee709e7eb094850d8218fd2abf0029dbb7 GIT binary patch literal 39284 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 qJoI%Zrh~{A7x%vJfBC + + Basketball court dimensions + Basketball court. written by maix (Marian Sigler). License: CreativeCommons ShareAlike (http://creativecommons.org/licenses/sa/1.0/) + + + + + + Basketball court dimensions + + + + + + + + + + + + diff --git a/assets/court/court-lines.svg.import b/assets/court/court-lines.svg.import new file mode 100644 index 0000000..3ac9add --- /dev/null +++ b/assets/court/court-lines.svg.import @@ -0,0 +1,43 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://itt5cfktry8p" +path="res://.godot/imported/court-lines.svg-b9f665f61329fddc51d5bbe8f8b0aaf9.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/court/court-lines.svg" +dest_files=["res://.godot/imported/court-lines.svg-b9f665f61329fddc51d5bbe8f8b0aaf9.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +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/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +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/court/hoop-sprite-accurate.png b/assets/court/hoop-sprite-accurate.png new file mode 100644 index 0000000000000000000000000000000000000000..47361c573291e749e6af777a350313adef74d11e GIT binary patch literal 1975 zcmV;o2T1sdP)pF8FWQhbW?9;ba!ELWdL_~cP?peYja~^aAhuUa%Y?FJQ@H12SiCk zK~#90?cIHhTvZ*$@$c`X$VC_#H~$?m_}NKV9W08wxWiLHZ9$qm))K7^N*RD zVeP(8_uS5&&tEq;_uljD&Xb$T&ADgf(2-un^D0DC(WL7Tm0(HVtIHRhKDvB5=YF_k z)ydPf8%~xt(cC1e{svtR*`~TSpmmz3CxgyZTlvz=UB-0)&nqWiXs@F9LVFd(7uu^R zzR+Gp@rCv(iZ8TRQGB7jisB3HRTN)nucG)udlkhO+N&tO&|XFHv+ZUoxh|SXpZYqO zZG!zG$dqmpidw!-u+C6fqqRs`r(9@M%7tLkfyH8b{fJAYxD!hfzEh8Con7`Lr5ciLy@MGk_FN??dPa`ud+{zvi9%U6(mu=xNAo zZ@3X-cM053-1T=_Rg=IHU<7z1i1&5Us&>ZN=Llcu z$=bFwmWj^WCnC2OcIeLokw!XF=gK+E*#{Ggf~v?4&~F0>yi^^x-=wuaTh4JRl`r&U zB(I;JO=k`QYk>hpzZL83`{kt^GSgW94H10`r~&z1U}mAnz!w)^MsWz^hFG{Bvv4@8OR%9D`EIv)~ePT`5s__ zdvlF-4Xz`FkuUT`*t}_^@V|MXsw4H5>pU04+k1|R$csQkg(lZ|!pIkTvyfcM8s{HaPfsM zksVmJ4EPvuzNY5nUtH%IOFWf21`GgKXMd3Rr0YCk;tO3uBGDB9D91xRWplsg1>OY^ z!?mvCgo!WoM-}dNqJ55YOiUyNpoV3xqlAesbP0>S@EEMDbDS>))j~!^{G+=PzR)Ga zngBo{^poion+6aoao1VG#231R8k+?W2wZ2Gh+yIXYBcRSOPKgVmoS*~#m$9IgG_=* zA)}z@Cpva6@r5pBDZa5Sb#8-9g4%ij`Cn!ae4#%=b>u{G^IDQqTQFu;ZIp;2p8`Ll=Q;EKV)<)3vNXH4lt?JA%K_*byA|8K7Igo!V7DOD9X1YnG; zcbsNSMkr>}?oiCt4iR7IQB>t1fKl1xI?Gs83)5Q>UU3{HbbO&l2_*U=kXHCyy18MM z>pY{So9kB>mmnJqV(|m6^Ms8r^k|*O&m%k!U~E2gZ-qoun+sdAm)5rj+@=X1U+9Yv zLnn|2xofa7vC?&(3)0Q?t5vxJ7!gC4>pWrP3w;sQkEY&5*aJi&B2R|m5nfV^$?Gn_ zfIL&(-rMUsQW&}aph9ZcRQ(Y2KOi?|(zV-N=gFq)9!6LLoEgqXT3qJ|E5CBmI5LfO zn?%?Pj9|=Hg7%(6E^_3y*R5B>uYriFZj5#Hz2G9p<-p&e#}VsF?L*lOM6ve3@I$pX zOn6e6rJEa8X@tVk1;|f*naAe~J%QldmEQ+`1uV2G-I>PvFU{82nWow=7;9fcSpXc2 z#g{%fTVr3Y{8x_2*nUk-R^qQ9auYD9%6DR2sePAn$l^kgyMZ{+9mKP@(fSWRRdfQr z(36!+1i6fPPL(?W5S|_y8rr_#@%PS@bC?geExoF0-n_>_?kVh%{Xs^y@I+6poa0m~ zU+Ae2kxXN4qri`VDDZ(mTXn`fHRHl16G1K`_o+%7g*VTKRkS76*}v1z*O)wC=xInd z*R6?Ib}6hb?2&(>x?3XA=c?OJOz8#NTyuTBTHOrX4}2T|<%o^Q)_8mGpUND);`u^P z*G7qCm)G8d&pc zs5~0fq@E4+G72H)3q4aCC6YpF8FWQhbW?9;ba!ELWdL_~cP?peYja~^aAhuUa%Y?FJQ@H12%Jeo zK~z|Ut(bdoRMi>4f9Kr2`^e_8NnjHaLPDBH0Tl`wViE|W9juND&SDpU_$}TRGV9RH2gUKHx4i6+k{<0)wEBg4}J`yk5O=TlY+L ziP?bL8h(}=6OLa2PXMkN+%4c$Q(MneZFq6un!!yCPu?U2?*b($%;SIt+$n7RN{Rbd z{b1Yvs|FwZ+vXaj#lL~{xJtX-?$*Nj#bVCfyb6cu$Of>i*wDa*^BreTpHh)XxC)SQ z|A^4~!I}-vzdLJi^WUE;6}D;t<^l+0&*Gbw4*7i9OQvlpFgh~Qe)NkYZmm>tTon?w zsH@qy?X$^#GR3zOEwb%bl29qSZmF(u&jba?$jq#)s;Vqgq3hHtLNx$wqH;c|NuK9NYc_i$T_ z8*~nUMsKKl^!e8kc1NmKYaxD`c=!ABk9gA3)&RuL_naJg_s@OS#r_q*x2Aj+bL99B zX5RhS95cV9-0k)h})6lf?2YU41z7jz?B1rNRfB_i7*wuuW~{C6?F~|2S$HH^!lu4)aUHFfzwl zKG+{@+_8ExR0$cf4dY@8up|8WzLle&ywND7^f;Z)<8i$a#hDzXD~4K1@)GYZw|g{p z?sVtqzMab>hWk_?-G6e_%*a(zRs!DmGcHk`CBfdHcWm&cMB~N|@2+!IEdQ@N%{vy2 zMkne<9S}v`UQY#nrdLzo2NQ*D?dAtTV6Em%37nOOpZvReG0kctiRIm zZ+<~}Ywm7B8fO4wc;`#wPSbViUkY+k_IS&E6`K+Ky6;RczHHx#rOOr%_QhOlv>|*c zhV=6BHO-iCxxMLi_pb6*-x(SD#|w?oGwrKYaOmTNk47Xrnta*1zN`kpbBS`cTlA@m zJ?k_xLjg*cRhh|-IZSuRxZ@sJ88t6&sF9EiG_Xejjs*`(j8lk-Oc*!K8iXvzSb4kJ)em|K=;#B9X2?6Tbrf0E5_ zH?&^tKYM(#ZEiua|58cZ2|^^nLW@la)8f*(9b(cXxC${N!QquhKH9PPi{0MyhJvFd00OZh(7NMgX=}YU@kLR7Ry)&dqgN||(_O0r-JM4OO21LQQV4nhw4glf zcHb@0x<28Yli^99uA*xY@n!Qa4}g@?jm#T(?&v<71&1fWzU) z0>X&5KGzBvm40{wk~q(O)y5}}iEZ!kQb>R`WSsl4^JK>(#xIB>qVJjq4B zC(&Y0LUFQZX#Vwr`sU4VEG+wG6+l<#S8ZC6nAP1rSN3~S4i@eK`T#=X(XwbXcIf|w z<`fh)u2{Ri4nQe8a<2be^5ha){Cx2PTcUEyo;?BX; zeC_&rA%p=iJT%yz2ysDtUbEp3??8NCmWFeivSL30oj(?dm7G2|*t{SwyKc5XA?2B> zd%hRT@a0w@#ASQI`Tm{@mwKx|f{CzJ0&IEfSWu!LXW|0Jss53=bAzG1vjuCViXy?$ zk*UyN)6S;x(;arwPl*1+d-C|(^3RU9jtaE8qQ?MQYrXRJRUc&fe06{;W?6D>{r%;O z&VN~1I@ERCV}+YgT(QXrt-1>b+9QGIHyfb?@2^7HMSz{P?g=v*jU*Xbh~!26ibLO_ zM6VJPq40P(oMHOsmu9S9zn^_OYs)Tn0u#3gOFD+N5aXsD%adA_Fy-Q&w&J#C=Yop* zNZ*0v^3+P4n-)AOjN@KZ81Tfb*b>{eN7AbAs@2kH3hsSp1&}7S@;dFPcj~usu{=xH z9L~7?!Fr`sI659lTy1S9(N7ajSHxCpAAL3idRM$?cAe-r0^qH>W7V7={U+eZnRkHH z6E5b+@gK~2^q1Y4cRaijpu4N{5Q!5>&@wqEGF^Q2GH?$-Ake>J{(|CDp0u=LV@^Ry z?qgd^v=tqTb{+rB9y%97DU6)FG-vUW3gL3!ny4TW3HSE(oxK!mEB%+rfN4_^`(Jx< z53mN}8G)+WOw;L{GfhJ;6Dwv79%^e2C|gy=RmXeXy-Oc>;H~7Eo;Hk?LOu=?@vv69 z^iXSabZBtk*i6vTk>Rh}TAD^DK_f!)!^u#XA?wq$ee>;7iGOh^x24@~Pg`M8k(fOJhkc(GdGF)>wmG%dxeL(S@{3}002ovPDHLkV1gkNhC2WN literal 0 HcmV?d00001 diff --git a/assets/players/top-down/orange-45.png.import b/assets/players/top-down/orange-45.png.import new file mode 100644 index 0000000..93a2ff4 --- /dev/null +++ b/assets/players/top-down/orange-45.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://ctakygdw82fs2" +path="res://.godot/imported/orange-45.png-ccec7bbce707c05643b204e9db0810d8.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/players/top-down/orange-45.png" +dest_files=["res://.godot/imported/orange-45.png-ccec7bbce707c05643b204e9db0810d8.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +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/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +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/ball.tscn b/ball.tscn index c83e2c5..0ec27d7 100644 --- a/ball.tscn +++ b/ball.tscn @@ -1,7 +1,7 @@ [gd_scene format=3 uid="uid://cbqaj6trvqat0"] [ext_resource type="Script" uid="uid://3c5arbqbgr2l" path="res://scripts/ball.gd" id="1_x8fbi"] -[ext_resource type="Texture2D" uid="uid://ot6gbcnca0lu" path="res://assets/ball/ball_basket2.png" id="2_41u45"] +[ext_resource type="Texture2D" uid="uid://vfxgx3oc6nm1" path="res://assets/ball/ball-kenney-accurate.png" id="2_41u45"] [node name="Ball" type="Node2D" unique_id=1245529605] script = ExtResource("1_x8fbi") diff --git a/court.tscn b/court.tscn index e0c7d69..e645d55 100644 --- a/court.tscn +++ b/court.tscn @@ -1,20 +1,48 @@ [gd_scene format=3 uid="uid://cxbu51aedxg3c"] [ext_resource type="Script" uid="uid://bpyti0u3ig8rs" path="res://scripts/court.gd" id="1_ih5bv"] -[ext_resource type="Texture2D" uid="uid://cf4vy3j12ydus" path="res://assets/court/half-court-custom.png" id="2_ih5bv"] +[ext_resource type="Texture2D" uid="uid://qq1gvnw7an1s" path="res://assets/court/court-lines.png" id="2_ih5bv"] [sub_resource type="NavigationPolygon" id="NavigationPolygon_klx28"] vertices = PackedVector2Array(1500, 1400, 10, 1400, 10, 10, 1500, 10) polygons = Array[PackedInt32Array]([PackedInt32Array(0, 1, 2, 3)]) outlines = Array[PackedVector2Array]([PackedVector2Array(0, 0, 1510, 0, 1510, 1410, 0, 1410)]) +[sub_resource type="RectangleShape2D" id="RectangleShape2D_ih5bv"] +size = Vector2(490, 585) + +[sub_resource type="CircleShape2D" id="CircleShape2D_ih5bv"] +radius = 675.0 + +[sub_resource type="RectangleShape2D" id="RectangleShape2D_acrlw"] +size = Vector2(1350, 157.5) + [node name="Court" type="Node2D" unique_id=1870443472] script = ExtResource("1_ih5bv") -[node name="CourtSprite" type="Sprite2D" parent="." unique_id=401540171] +[node name="CourtLines" type="Sprite2D" parent="." unique_id=401540171] modulate = Color(1, 1, 1, 0.4627451) texture = ExtResource("2_ih5bv") centered = false [node name="NavigationRegion2D" type="NavigationRegion2D" parent="." unique_id=1617904918] navigation_polygon = SubResource("NavigationPolygon_klx28") + +[node name="KeyArea" type="Area2D" parent="." unique_id=538903225] +position = Vector2(755, 292) + +[node name="CollisionShape2D" type="CollisionShape2D" parent="KeyArea" unique_id=1398173864] +shape = SubResource("RectangleShape2D_ih5bv") +debug_color = Color(1, 1, 0, 0.41960785) + +[node name="TwoPointArea" type="Area2D" parent="." unique_id=1591376341] +position = Vector2(760, 162.5) + +[node name="TwoPointArc" type="CollisionShape2D" parent="TwoPointArea" unique_id=704197509] +shape = SubResource("CircleShape2D_ih5bv") +debug_color = Color(0.9843137, 0.35686275, 0.49019608, 0.41960785) + +[node name="TwoPointBox" type="CollisionShape2D" parent="TwoPointArea" unique_id=1263644238] +position = Vector2(0, -78.75) +shape = SubResource("RectangleShape2D_acrlw") +debug_color = Color(0.9843137, 0.35686275, 0.49019608, 0.41960785) diff --git a/game.tscn b/game.tscn index 5c6cf56..351b27f 100644 --- a/game.tscn +++ b/game.tscn @@ -3,17 +3,10 @@ [ext_resource type="Script" uid="uid://0xvlu81d8a01" path="res://scripts/game_manager.gd" id="1_7jktm"] [ext_resource type="PackedScene" uid="uid://cxbu51aedxg3c" path="res://court.tscn" id="1_e2o6t"] [ext_resource type="PackedScene" uid="uid://boqs7k6ia532h" path="res://player.tscn" id="2_feb5d"] -[ext_resource type="Texture2D" uid="uid://cdisx65vqrn21" path="res://assets/players/red_wing.png" id="3_fc0e3"] -[ext_resource type="Script" uid="uid://bbey5ttwv5utd" path="res://scripts/custom resources/player_attributes.gd" id="4_7jktm"] [ext_resource type="PackedScene" uid="uid://i0ijmmchb3s1" path="res://hoop.tscn" id="4_215e1"] -[ext_resource type="Texture2D" uid="uid://46vgqxp2imyw" path="res://assets/players/blue_guard.png" id="4_j5wjh"] [ext_resource type="Script" uid="uid://c7dxj0ifl687s" path="res://scripts/custom resources/team_attributes.gd" id="4_mfdv2"] [ext_resource type="PackedScene" uid="uid://cbqaj6trvqat0" path="res://ball.tscn" id="6_ryrav"] -[ext_resource type="Texture2D" uid="uid://df7cknvvngtij" path="res://assets/players/blue_big.png" id="6_vef74"] -[ext_resource type="Texture2D" uid="uid://dl54l4wvub6ro" path="res://assets/players/blue_wing.png" id="7_hve3p"] [ext_resource type="PackedScene" uid="uid://cfq463kejcp2m" path="res://team.tscn" id="11_mfdv2"] -[ext_resource type="Texture2D" uid="uid://cn2xfwvejclvo" path="res://assets/players/red_guard.png" id="12_iotsf"] -[ext_resource type="Texture2D" uid="uid://w10nqq5ng8n5" path="res://assets/players/red_big.png" id="14_215e1"] [sub_resource type="Resource" id="Resource_e8heu"] script = ExtResource("4_mfdv2") @@ -21,52 +14,12 @@ team_name = "Royals" team_color = Color(1, 0, 0, 1) metadata/_custom_type_script = "uid://c7dxj0ifl687s" -[sub_resource type="Resource" id="Resource_215e1"] -script = ExtResource("4_7jktm") -player_name = "Stevie" -player_texture = ExtResource("12_iotsf") -metadata/_custom_type_script = "uid://bbey5ttwv5utd" - -[sub_resource type="Resource" id="Resource_7sc4i"] -script = ExtResource("4_7jktm") -player_name = "Dave" -player_position = 1 -player_texture = ExtResource("3_fc0e3") -metadata/_custom_type_script = "uid://bbey5ttwv5utd" - -[sub_resource type="Resource" id="Resource_80cx4"] -script = ExtResource("4_7jktm") -player_name = "Brendan" -player_position = 2 -player_texture = ExtResource("14_215e1") -metadata/_custom_type_script = "uid://bbey5ttwv5utd" - [sub_resource type="Resource" id="Resource_lc2xo"] script = ExtResource("4_mfdv2") team_name = "Blue Devils" team_color = Color(0, 0, 1, 1) metadata/_custom_type_script = "uid://c7dxj0ifl687s" -[sub_resource type="Resource" id="Resource_ryrav"] -script = ExtResource("4_7jktm") -player_name = "Kirt" -player_texture = ExtResource("4_j5wjh") -metadata/_custom_type_script = "uid://bbey5ttwv5utd" - -[sub_resource type="Resource" id="Resource_mfdv2"] -script = ExtResource("4_7jktm") -player_name = "Greg" -player_position = 1 -player_texture = ExtResource("7_hve3p") -metadata/_custom_type_script = "uid://bbey5ttwv5utd" - -[sub_resource type="Resource" id="Resource_iotsf"] -script = ExtResource("4_7jktm") -player_name = "Cheryl" -player_position = 2 -player_texture = ExtResource("6_vef74") -metadata/_custom_type_script = "uid://bbey5ttwv5utd" - [node name="Game" type="Node2D" unique_id=980666470 node_paths=PackedStringArray("ball", "court")] script = ExtResource("1_7jktm") ball = NodePath("Ball") @@ -75,37 +28,31 @@ court = NodePath("Court") [node name="Court" parent="." unique_id=1870443472 instance=ExtResource("1_e2o6t")] [node name="Ball" parent="." unique_id=1245529605 instance=ExtResource("6_ryrav")] -position = Vector2(748, 857) +position = Vector2(792, 838) [node name="Hoop" parent="." unique_id=567327541 instance=ExtResource("4_215e1")] -position = Vector2(760, 78) +position = Vector2(755, 120) [node name="RedTeam" parent="." unique_id=1449767365 instance=ExtResource("11_mfdv2")] attributes = SubResource("Resource_e8heu") [node name="Red1" parent="RedTeam" unique_id=1614241571 instance=ExtResource("2_feb5d")] position = Vector2(778, 858) -attributes = SubResource("Resource_215e1") [node name="Red2" parent="RedTeam" unique_id=812999974 instance=ExtResource("2_feb5d")] position = Vector2(164, 571) -attributes = SubResource("Resource_7sc4i") [node name="Red3" parent="RedTeam" unique_id=142493116 instance=ExtResource("2_feb5d")] position = Vector2(1358, 484) -attributes = SubResource("Resource_80cx4") [node name="BlueTeam" parent="." unique_id=1689836688 instance=ExtResource("11_mfdv2")] attributes = SubResource("Resource_lc2xo") [node name="Blue1" parent="BlueTeam" unique_id=1267043713 instance=ExtResource("2_feb5d")] position = Vector2(770, 758) -attributes = SubResource("Resource_ryrav") [node name="Blue2" parent="BlueTeam" unique_id=1850933619 instance=ExtResource("2_feb5d")] position = Vector2(348, 489) -attributes = SubResource("Resource_mfdv2") [node name="Blue3" parent="BlueTeam" unique_id=75794271 instance=ExtResource("2_feb5d")] position = Vector2(1209, 468) -attributes = SubResource("Resource_iotsf") diff --git a/hoop.tscn b/hoop.tscn index b1e7de4..a1afe1e 100644 --- a/hoop.tscn +++ b/hoop.tscn @@ -1,7 +1,7 @@ [gd_scene format=3 uid="uid://i0ijmmchb3s1"] [ext_resource type="Script" uid="uid://ba66m7qpokeib" path="res://scripts/hoop.gd" id="1_ivl1g"] -[ext_resource type="Texture2D" uid="uid://dclxeeo08l7rj" path="res://assets/court/hoop-sprite-custom-2.png" id="2_ivl1g"] +[ext_resource type="Texture2D" uid="uid://dwgdxhba5p8xk" path="res://assets/court/hoop-sprite-accurate.png" id="2_ivl1g"] [node name="Hoop" type="Node2D" unique_id=567327541] script = ExtResource("1_ivl1g") @@ -9,5 +9,4 @@ script = ExtResource("1_ivl1g") [node name="HoopSprite" type="Sprite2D" parent="." unique_id=334585636] texture_filter = 1 texture = ExtResource("2_ivl1g") -centered = false -offset = Vector2(-42, 0) +offset = Vector2(0, 30) diff --git a/player.tscn b/player.tscn index 33537ef..4cc3239 100644 --- a/player.tscn +++ b/player.tscn @@ -1,13 +1,15 @@ [gd_scene format=3 uid="uid://boqs7k6ia532h"] -[ext_resource type="Texture2D" uid="uid://46vgqxp2imyw" path="res://assets/players/blue_guard.png" id="1_4flbx"] [ext_resource type="Script" uid="uid://bs8r5rqnt33rf" path="res://scripts/player.gd" id="1_onrkg"] +[ext_resource type="Texture2D" uid="uid://ctakygdw82fs2" path="res://assets/players/top-down/orange-45.png" id="2_onrkg"] [node name="Player" type="Node2D" unique_id=1267043713] script = ExtResource("1_onrkg") [node name="PlayerSprite" type="Sprite2D" parent="." unique_id=1692351563] -texture = ExtResource("1_4flbx") +texture_filter = 1 +rotation = -1.5707964 +texture = ExtResource("2_onrkg") [node name="PlayerNav" type="NavigationAgent2D" parent="." unique_id=1205813043] avoidance_enabled = true @@ -20,9 +22,9 @@ anchor_top = 1.0 anchor_right = 0.5 anchor_bottom = 1.0 offset_left = -48.0 -offset_top = 24.0 +offset_top = 16.0 offset_right = 47.0 -offset_bottom = 47.0 +offset_bottom = 39.0 grow_horizontal = 2 grow_vertical = 0 text = "PlayerName"