From 4e632582cfae1f64db62bdbb35a3e5ec72a6606b Mon Sep 17 00:00:00 2001 From: Reed Date: Thu, 15 Jan 2026 16:09:20 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9A=97=E7=89=A9=E8=B4=A8=E7=90=83=E7=89=88?= =?UTF-8?q?=E6=9C=AC2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- _asset/ksw/未命名作品(3).png | Bin 0 -> 87122 bytes _asset/ksw/未命名作品(3).png.import | 40 ++++++ _game/GameMain.tscn | 34 +---- .../dark_material_ball/dark_material_ball.gd | 6 + .../dark_material_ball.tscn | 3 +- _scene/level1/l0_s0.tscn | 4 + _scene/level1/l1_s1_new.tscn | 2 +- _tileset/level1.tres | 136 ++++++++---------- .../grap_hook/garpping_hook_v2.tscn | 14 +- .../grap_hook/garpping_hook_v_2.gd | 73 ++++++++-- project.godot | 1 + 11 files changed, 192 insertions(+), 121 deletions(-) create mode 100644 _asset/ksw/未命名作品(3).png create mode 100644 _asset/ksw/未命名作品(3).png.import diff --git a/_asset/ksw/未命名作品(3).png b/_asset/ksw/未命名作品(3).png new file mode 100644 index 0000000000000000000000000000000000000000..33e2b25526d63589339bd07b01220482ac3e110a GIT binary patch literal 87122 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%0AFQB^X+QV|$3c^?rQ=%q26_v&104 zwTmsD(JqppHxFY1DDRYgUgwxXd5i~We%_EGOU>PK+0J8Fc(w`{*X-9eRHXpObX*{j zYikdI`(Fi*_(V{u`z#IiNs49!>tehk;-Gnuiv|sqn%)MIvnx;|FV?q)b!$*Ue=z8} z?CedpIwSB1G{_K6-vq`tX13ecabv_Ou$*mhs%**ln$i=PK)%Z7u(q`4{{bQ`8G6c< zX0xN&dA%{ks`wgkcnS@HKLBm02~Yr>mV~+@?^lKrJpnGdZsf$Dfbue2Usk&V_|re-B#5Q0Ob%ei?Mx zC@Bbpucs)bO@itcv$lPw|LBdRp#c>UCnom4s!zfGb3W$j;i1h8cjN>JCwFf{bqUx~JNWJxW{l3eey%6O@1LkMiGwXmbsGhzDzlCO-BUsi z51kFies&09ex*CZA(=m;Z2n6$0$W_M|B%HE^LmZ8p=ikzsg=F`NKCc)q!Ehv(1CJu zb7v_w&&2ow5HG|~(%}FB#J>(3g>|W?ABOIXHL(%?&5XKUWhtt%78QN#I~I!q!Vw1Z z!y50M?=&vXBX>m5AdWcOnGA)^d`Qb0ii{ch#oR!yZ_MIgn>C7iTZcrVy;F?fijONO z=LG(g6SwajD%7alH-4ng&qM;k4gq_3RBwA#*P1!*7t`i+gdv}>RL!R^pUg*|o+M?KGnka5`q zYQBuo^aM1JxVX5rXH|QbV>6Xot(xzw!_YvPczv1TliPC|$Oz7$pCd=%PC!{lKF~tB z1Lv>B>X1zpNm-bU%Wpw&LIM{sax6cdM(yjD9af21!o-W+>KT1F9XJ%)3A)t5Mh+gY zx_o*rjDmvv6fSFeu8FoF+;_;G$G3D0Ke{WVcJ z6B!`?fx@o$84zrQOwUciK*hyR*7sv&v%C9sD=bnj4eR^gW1f|MD~fJBAHnaNuCR1v zJ*8Fnb5riojhHH)m_Y8kK#{-iz?BaUsRTp8K0ayWRDUM3qg0$(@fir1Aw&h+BLX%P zp9%)XPz4&s{e3C@K45W7!h6Nys1*O+y=%oNu3qyzIsj#G<*9DhL;?eYK|Y1wZPHg` zgD2@+(NK(OV{?=D!-qSn+_{^Z)|$GyYvD9Xz{kwL-MnY~@!off2Q3<6(a_ z?0osu?pc4H3Vw>T*c+Jd)<-XRMtth|wUpO&VL5HA_>+431#!pyM0q>Aol?I8GGyWd zGRmf8q&{(t>&4d@WCljVn27Mm9bKuJ0pWNyx6adDWK zcOg6afX(>T=||dL@($huRlbN~)r?ygxn}&~H9cbP&#neb%B`;Mqzc&iJiKbCtDBQ=PcA|2^3tt`6B848gwM>>^d6`PV}LjaLZv5?laqVN6gkBnP08jg zVxJo<9zn0(hjzZLHx_p{li?)wnS{6BS2>Um49Y723d(>h1ma`zmz@j&9WA~(Kd;$e zD)p)ytu9uw&k!!Sz=IW9yW$|Aoxx_`I7|$ziD(^2>I?5(n&}Iq3qcJi4iKtZmkZ80zsL ziL!V^>Hs-kbMPfV1$1mg`mEagPsUy6j+WU_c@m8G+;jnx6aDEtHZuqqmT?RP9je+~ zVbRYIMC-bijk_XA7=O%6M7({E``<-zb(-HI7EpbmK{q`0d#$E6DDL4jiib{J@}zrE zGG@v+&X50{Hhbfv05yLk&xYN_9$X>1=l+(E;^0twUe3=p>F}?rFEzaJL}b`mS@}Q3 zz944f(tUc=YLktQ)Dn4m9CCypIo2W=C69pBhU9^rI7X4*Ij2#XBmcvE*-GOXh}n= zC+sagVcEQ<7T56!}zq+)pXW^f@pKzxh*rzQ8$rK{Z%bpF3D$CRc}Jc zTp{h3XPKz{WnU4z03RRwWAdnCrqG5!$ORonU~b<*{ufH8h=!yM>MAtlzLk5i(X|!{ zG%!Dui-%rbWo-w$CVyO}?HyE;Y~I_O>>jk97T7B2wC3Gw>~0!faJyLa@whmFsL)QX zxWSb28`t1}{8G^-&rD}j_G-4T%$ixRtbA)lcHLEIE;Of+%BSR54;l_<4_&IZ&C9nw zBT~vIyNv`6>tV*6^+x)=UvLzQk$+$;)%E7l-4dd5`AJe_93wPP7W2u>kD6?0R7u0` zmByr-!?3(6?-C2w6ETSzS#O-)Jme^R#;ShP&ldaR>nwT1M4#T%fHyi@YK=fmKn}#W zY4Iny$Hm1}go_Uo$T~E^%c%Mg5Te9LB75T z_x_|APT{k}ELtTYLlxH5g~i_gY20gkuNB$A&W$tFV6Dmy&=w#;eu};m>!upSS$a>W z_Kx=4*KbEja`9lzX<6bAGn6lVz;*Ndnaql5^LL${nk*jOq?&U+3ENK^lbMb3*?j*A zPerOV(~=TcA#=mC1<~`P-@L=r? zu=GsVs*$mT#*htqp<#(i@kbek_{4tqc93n1YC^;s*nuLw?W^yoWeGY0R&?^4t;r}a zh%;67kMfq-jZJ4~C`*TU2v(k^iOl@H4C=ssJV>2r2JS@BZM6qGE07PXqDbxcZCQso zCIORWc6P?~!O&=?;l~zoyco3p&k@9bG2#b19iGdPv+e8SOq06b7n4Z1c7NCR4Tt$7 z0->A7S&d~{oW`>L1BL6X+#Y#N0yj0agXWZa7%qS|8WO z572E2feu_OG!_^HW*?4g2U13Vy`>AQp8}Qrx^%=!^~wu2>VhU7!sN&V4>w=7^{Xxp z*VU!u<<&9QSBTiWgfvMQ2K3Hl9)ll%>BK-%4ZA`4Wd&@YTGB^U5ox3O3&XYj0d$k= zy=MkOEf|x)!W{YoeAFO-br3vsi4d>+2J3O_`%Sv1Dlo%OU0fLJue7!6g)=l+h+>wS z@~TU<@oNQ#oy3B`pD|Vi&Nc@95t?tl^SS{wB`RElIv_rjBirFvckedExAr<0uwlob zWq^o+|MK9)FM)m0nWs;EYor`zt6G7ZlMvZov!oWi7FL?`rQY#xa`tRD$E`gNbv-DB zApDEFQ^dYKcnxj|0>Avw<#Fe>M#ut!4?qQY8xtS+Sz>yseXPLm!Gdh>2onQ30Te?C zVgm{dk2<3?UK*HY`kcmJnuKmgRM4co6Wx3A7=4o(3A6#aqW>uEeOTh@@sOT@fC_!% zrT}Nirg{I!_@3$)HZ~A8hT>vJB(veojcpb#b=>bbwEGHDnku)?U%+kCWXqQdbHICa z{9b^6o2NVgyjjNn$E~~bumbzDN3r+esy@ZF-E>A`OhY|UEFpGK;C16L<}X|w47Nu* zGHis{sbKn8e(DTrQDpuRi0bDd+{a5HaNP$_Q}Xr=&3MP{rmM^iwu~8XUnAoqYwtFE zWUea3a6QPT6iRQmY~Cw;uki>YPb2HwH!Cogag6d|`wG9{on%=$2Tajt&r}oKq)CbB3#9lCYIPoo>+1S5jX{nQ`J5D7x3=&ysM?GX+&X(Y z2CNMO)f!q5%iX(|DgYOiRE!VK74|w*LGgd6!Z`TU_==R5WIRpQ>uM*S;@oh0!*usP zkH!bKA%=Dd4I?d@z7b7pAbM2-$6hAFpfjTe&9-ljQh;RsKRo~$E#?XXHz&Y~9-d*l zi^kGp-OaPU`uvlZa?VcTC9!3JtC9@l&^8=myquQ>!%KU?ED~{YgxI-Y#uxZQ>Vjg4 zvMn}{T^h@!GymELQuPfT1N0I&L!3jxn19VD9CUeiLq;XA!?aHDPMQiNDJd{Qb z(PCj>s!PlYEDH4>s%EXPGZRNYqn3%&Iaaw3N%8D76{n=Rkb#-xQZMf+Y3Dh4rMn!SXavKeq0SW&KM) zY99WPbX-h?KcJSdaz#i8J_D-$0}bC*NymWdmk!AgKDNv~nMzjnFRn}686T9ZwCZC+ zgTVgSUDv(^((f@-kFo^{FhK~SZ>*(blS|HQ4{HSj1R^ylDB6P~U&P*qfEOJ5_Z8kF zV3K}kv#LZ4KXFMpjMNt~D9azksk>w1hJTfDX9yBYjYp$)CCaLPfvU_uQltCAz;#>T znMKjiiL-qHqGY42DyJuH4F9zhr~}Za`30kT|MBCKGhJNr-KR3Gc-yan^nXoOMoa5P zv{~QT7=pdxE#T2b>;BI9>rfgDZ&&Fs9rzO{RzNfkKvXj}C(zo3N_Gtt6uNPn6GENm z9@3$EPrldxE1>h|i?80U{DM2c8kT~~F`DjGR=Vj0%Roxy5n6QYv_yy1?xX4z05wE; z7M}CQ?zv({XD2)P`7VZ% z#?a9vaf|fppTp5JG#Juod&$;$W6|!rY-xI+#*f~N>w5B3Y*2A_Y-}u*oX^6#sIv%z zF+>G@=Td}(%`^io?HdD*d4}5Ol1jlhp@~AExX(4>BbuTPo6<4>Oi6+&EC+|Zz) zk3PepFExk&4fGt{)-eE(!)bGSObi%ip;pNRIL(aKh#01-^A+e*?92auxVp-)DuZq- zM-UK{QjkXJMi7ub(jC%`NJ)3sQ9%*uZj^4MI~1h5ySuyL&H-Yp=Bi z9XCaNQgJ#!UPZ;ok#o~SWjm|Fjkz4)drDC3f_^M zw<$^$s|mt^B@!3uU9h=;r1jDK`DpPgU%gmGs4FsIXx8G#xL-=`69?mB8hLefc7m?8 zbKY|_0f1qsfpEX-%D`cQZDZs&%LRb+Vg)RsA@^baJkAJDyWJ}t1ckbc4SGyk)61bpf4_$ani#=Y1d<8)DP_UHwUrJoa z*$Xm0s3s_^9||%nb}dSUy~RLur%oou2erck{mts%J{8cK1$3JQMTgr-(0yp~)@1nO z8JfF#1sSg77sQ@;E-C*y&aX>73#=P<9^yET=EsO7D-sqK2@kXkndw3>TS*aOq6$Pz z!vJ-a$BXVC#|^BdJvA-Bof(g{(lD$b`+sEzgQ0ynCfz#LLre|?64%vtkII!DaeaTG zZZJhY_F@iZ!ruOAeS9BMb?=io8mY5454;*Y4<_8<`cnNBe6?&qeyRONM?W;1%o+ZK z(;ETK6jk?lK%IbJsU2WJ-SJ!#gF{?=6}iY5W(|y*WdsroUZU$e(kKKf$Vo#y&zJBe zsbaqLI97wLD=yR>q3t#XFMC`;&hw-eD(!Y+g+JB{oDA#&Ot#{wiDjLoL2Q6W|3ti% z`lP-FKS0S0<$vF0S+jyrRg3Ae_ZPBw&tE$*z+%@4K#4gAW9!+5&2}6vf{bAA)xiDp zr~RL_u&g#*r`90`*kCJx*ReAbgNXQ2(IOV#1Y|-0ruqhYlNitEBh+v7ryY4aE9i>V)#G`tGOaMfx} z1AKF%Y8xEQ=br~-KteN5HKfe^KUfR}-fbHY()U$Q6R-#@6z2cs zrwI+YzP^0mxlcm!lH!H9%Up1cT7MIJnHzg)64(m!&JW~%_4;-6Cn=vDY)uYP}z@_$?fZ=sdj^gWhAzKDO zac!B^dVIS_VK#^)jDfgu&Hj1Gk#5a?*(VP%_3^sMS=B3pqx%;8PGBs*qx1V`UWW!Xz>VbYr%Qtgn87gEnyM zckNxwU)0bm?w(LpYWmqV-N-`@JMuzDJ$}p;*7|{~B2S&4p>PcEtMCh>q1_S;IZ1ot zI^_%1=Pw|QxWQastw2VGT#X%00_dI3t=A7H#xD+f7WQ7})L;A*Az?s7?M0TU_{S1i z!&EEMYy7=dVQG?&AJkHkUp0>OKL2W9J%d@Rs^J9%Noh;sR1h3{yh;14yVOUC;t%ab zVsdhFic!+24|)f$sTAQ=IBtFGzH*U$v5QRUCMwqh0uL>7<6Yp14)s3n&W_`A>kfas zoV7Dtxvl^R!@x0^V%L)zuYM!VBG( z>5rXWcsGP29!iCCxGI3qt3>?{1O1|570b6>yRh(YhdR6GSHB~k zUpVyH2t{&{v-e=gwm+Q)d@bT0<|o5wxoW@O=I|>XhZYjZTOm^6>6xy!1-u3n%)dCj zS+4@?T%C0RqM5fBICs4UcnI8A7Esi?-6IcE}=E4 zM7jN_nxnDZ@Mj2{ac6(a5nnyk8$i_pD404!ZWVO6nVxa!0_LVx0WRG555K#&S-QHp zxv}y_{IR0}3;D~a*2BAnjEXqDxxL0p{-=cc_4hADPoKrySHel=Mo;V#fZS(A9}-Aw zD-Kms3XcO@tVg_*?jYAx2^n0cIywOHSs_HWxeK1w8Bhn4^fzjC3&y#}#Sy=g?S6p} zi(|xe2OT%0Lg07@4iV1ZlUbR5ym~M|9 z#Pm1N7Gvs*i+CT`^tt^ruQumNdShcm1R6()83O{HoX>hg4ax zM9E<$C9Q))!)qS{v%2eoNgq>xIS(UP@y#qTfj znU$23I@_j{E8kLq5<6SpyxQIT*IdPG)!Ug4-+l}xZ5E7jD z(gjvtrB6;xH3Zzh;~UPas_;d>w53Y zsTlA~yd8Lp3%)-pFu%5jvvou=jv%fsF#Wd9{sKOnuZa@yTH%?oB4)44+3@z{FSCbV zY{knUS63cXe2exR<{calR$N|C#s+8qw--RK&2I0t2SA4t5vf-T8yb>}@2Me^fSR1D zci@T>Bb?6Wh)6P3^#{I!3+U@wI;ln_ zrfY*LJ1rq}r`u0zbpnq$@nrjUgRjB=8 z2nCmyNAmtJO)&qL$$$pqz^4-0r$(!gmR$?uf*RWWMKHD{X;~JY)#T%wTHYLE@v(@#qJ#$?hIydB;{s?qi zSbmh}<+G_O_~;FAB^OIBE>>hqLi+V=#((P1Zvagdl38E>Ru3qWbo6yr-z~xah?prO z0~lzxCs?KTfkr3GY3Cd(SBjbQV|kUvZbZiN7SF5p2>SG_HCM|5f{!^B}eC5oS#z22NCvQldm_6vVg5 zxw+=Ufy760sw%-LC!|MA7cjV>me3q(^S$Y*Nf{z^vjc6#;a;NO6?dCCZyYb{j`Sf&XEOPp&0J^ zc-Js7Fn@azGd`}N8~#NQ$X>2dRwu8E*32yFyi6lV*`FiCl5UAJ-X6>!X_E{7kjhep zH8OZWCG%#QTJ&EsTG&Cq5e@4n_EkbLNL(p%k4{pj@87>qFmjeejYmcUL3k33xGEHT z`CZf>qUQPyTrxayquGq}aph+0Lah$eh5E?&%`oB21b~CnAzXc{$V@J5U_s7w+M4d` zd-wLkij*^U^7PAzZr`hsP{$kB`Vag%?J16C!U#^M-Q(La_m=iby0+8#OqUO3XTZVCe&-DIy zzxR4TS)WO%Ry{OQ%Lt-ioVu}G8%ri}weDAOoogA}-TfjI_ka=P%{`(Up0cp7T9BU4Y4qHfQxUsj0hGbWJ&Nl^okP@rCOtE~R z%WJgL5(Dr+7&v0lU+WL{A&L$hVWRe~g|1ZHg~?}OxSyL^>AIZNZ~?=T!>ZonZOV37 zg4G=3g)63|8z|ZI>`bcfyjk7#jpuZ#qh)mPZ4|)QK{5?&&_-B`QC3t?a5;Hw3Ey~; zNCw=b9zi|JY#^xo?~>w%QJ~d14=gj+9SYga&eD6)_SLU+J^gB`K1&_Rtog3Q7&nd& zAwkYzYutfg*Q2O-HCD3FM+1tDWB7Dw=?6zLkih{VnW-~YYPgdsnQa+3Qi>xMc<+|f zCJKcjE$+7xAs5bX$Ju-?{py$EZeB&Hr`iPd)8krzIvd5mJNV^NqYfHn)^e;Z>VD&+ zr0 zyJ~*H;BH(PP{eINcI7v;UP=*!HwSI@yJBq#Rgtv;V6FD6OeYrXYbO#NA>UhP(a+jY zU2C)yg=^Z+SANhdtX;|Eii*!9$vSgY-=!dflw=vV6(6$Mw`AC~i%X+vbN4e;RYz7m zs@i?nwohR9EB?qqG*y{&xwwTVnpLLp4nxJGa~E~Pn;@@@@>ZtaV+BE{rb|Z=b)H~8Pt6E`#g_)fJH_Q=ewIS zcJf01E^rC9D1Nc|GGq6dRiR3PLELD47t!EC^I_AO1Ksq52 z5eo=|Cv74Rcxy2mv34t=+zG<~32~k}auHJCMT9W)3a}*GdGEV!{NVuC+CQQ{;1pH3 zy04ds2Ftg>ZD1Nhpr*Mqj#Ky3P3UI#LzZbRzf2}Xd*{*K)?IVFcds2@z(#j>o%lX; zL8(8^|Ej_3eL9;KDkSp9|KpN}M-~~7u<9fO7^f9)Z>qAMRW)83JW^pG$O{*d0W_){ zo-pnY=_L2?T}W&pol{meA@fzCznelsKR!OL3KINmgCvUG$^9ea{h`fRm_RR*Ra^8B(B^mHI0-M%Hog^2pIAMic>P8j>{^HB zmbTk*0lK%ZxMB{%Byp+`IliMe#ntb2Rw%A53-aG+sY3dM0+8+N7*yZ9c5#ROm~(g* z{lUTg1qrI3HwFKMfjxA`k5dOtA|Q(j42l+Xx~Fvp-*~ApUN;U+7TjL#1xZNmGQS2p z*hlftLngIK`Jn2IhRZN0wYk5~-PElydkN0S?@WV#z_o@uO)-y~khE2l@)TbMmg+vX zUtUmqoLy->r?2)XlM`%U8gMYMSLH+gf6Syq$PiO`^PIT2#_|a8tTrf(Ts?^AjVX6| z0IqX-4*PUb%pDU(1(sz($PPLzDgGO|AQ=FZ>fAO@`#_S`Iunoiic?vbYy}c~F9J@G zv||!DLjw9=%ONUi!wMkEa_MOq~Z^3;pC~2Kka+ z5lk48IHWpAI@PHxJy4PoYGrF?vRdegS?FtHH zXs~VroHHUo_3$A(9-mqkUe=80C&2E**KJ>ayh?dn>-o^$$!U$!@@^Um zEl2WwZ!CJYTW+TTS3K=4NL#B&4$qs!_Gut~KneTqJ7QOH0#h;)z6}#}lev1f#)(f5&KiI%Btm zCCsq{(jv;=xw|P>dm?U{8^S4x`v-en2L|kh*jSNQtKk%DU6gPs+F|%X@Be%8{qx5p z<5mP1r03dMgnY>dzhGI49FQT~{%Nr?^8uIhBCaGm_~_Um*^g7=LuOdF5qMcFAYd7C zxHA3g5;^9^&d#UbLNM^~vngbCXA!%LM8~&x43(i^rt|`bUNyIU+q^qgJ{j=gv}&An zf?Pa*-**9$5>%kNx^5SWM>WqjwhT~4SE_1~}w=tNvah>gJ$ zyE~Zl6rt2NM9X`d)zVDO85I#82{Z?+Nl&Qjzu9b_=EPp! zWDl;Jcn*CZC!3X=&HDHoqWJdrWm5hVE}%dn!Cc)SWcf9ke0M>uMXf96d+}ij5Q0NvA_wDQ>n7 zuwO<)&N(v*JVz4sA`{;N;(7s+hK6M{xRfPDog}GxX!i!=1|ph>6DFG8_U2Sn&sr~e zhSR65{G(Q#dmErHqu4<|#JNtUD{Cv0VW%NDUczm5DvUVZZ8^_?ghAqcTb!rPUC{+-oi z?_@^h?9|h*=5J=>#B}-gb7n4=4*-#4MDVp>X2VhX2AuXivS@_-;%?QF&DMH%ZwP=u zb>VO0^Z#hLPgmtAq7!?vSNR%4C0fdM600lLy4iZPC+1G7z!Zlo-7|n zYhHUm&_E||08pVPPoF+A>2-c#$;W{JM{pB7MX{4#Qe4u4(<*68Fbk}2AXO*F9N?5P zpGE;SJ=58=X<_PY5ri(Kq$<~=?B?LP$3qhvhv`Eut)NJ&Ck%Bp=DK0g|MV#uemoB& z0nxStihIIQ17gXG2BKt@XQ+3eBy7-AHZH zlZ|w%eY{qFT}KCbyu3e8$7Uit=$3;9cgC;mc$@}1=FB+|P0bP>)38wtuO9S>s_Bzq z+9O;MPK=B-S2@425^oRkCPf;~pU`tOpE+6syXQuVmqcKph1IuG8qhr^&j)W^5gITc z66ztt7)z}ate2;D0`Fqu;_51H8ah8YtrTug7Dy$lg=GI85T4CYz| znwHMl25*VhS198+uW|jk>dQ-}U#aG6aZF83!8sIO6jAOr238{*n$xe;d88a=MyEry z-O^-BJ_yR-m<6@x<9C$K?|;bC1Sot0_harP&df4|2V9j%udmB#C8^85i)QV7%)#y~=i7u|_!!AGu@BAAO*Xg>p2g=P$6uwI~#^4~~w5oBLrv^_S zo#SY0C)|{WU!mNvAU+!tXQ_nA=3|E2zOivB$4)Uj{mH%5zh^Ub)hxbMwrKa5C z)X!MpLu_oEioKHqaVSZ|O_0`>_az8u_`eAR40G+jI2hyv~E?HQdq+qId$h82|**f($T z)hd8gj8wPCK5MM{!X`!N7yH?2hRl}61A-d}uMsP@C zmonyH$!X#B=D|WKfR>~R*PrOaONyIl453KGIR`2gdn=Auvj&fe>8T>y;Kc^X|v8k>&ubi)W z5=Y(?3mmxET^utO18HAUEzs{(QkIvtq*Dl=NT`>Jt(p{oMqT+eDQoE+qR;aaj{0*P z{)S`Mq_oM(kW7re>h314Hn8zdP^_v8F!Sa6tG|{;KS4L<@bEsTB9#dd2jad6+0O&c zV)%Vp2X(cTz@^}KZhLlR&7S4JK`HUfkA6l5HU$N;D~X z9=68XrX(!h*F=5@?x_5@CT8_{d{7*ICVd+J^gr)zDN~@Idag**com}DaqGGutti5D5n{EE6i)9MN zzwU|i*%F?Ej+%n%F?d^Rmrbr=CynrwhM9gOVm2vcJ_@THq0vaG#>0Sriq3}M0N9*Ch}_)cUBK(;!XR-@C5Y*b8Xn~Eo&&5U>)#Cq z*JOKhy^tu>8e}d;2->JRf9Gl6NJJB7@<37`tjIKcP_dV%;HXnUdU(k0DrYI!=r142GGZMGqQwrjr1f37% z;RMjUhTNFqu5RL^9zc01*tK{rq{V`r{M^z#`xYaa<$-kzznH5QR3L-fyLcbp15#UD z?pm7KVG^q(CAfmeO-4V{F0dqWKo&3GgX}_wr9}M;x(V=GdX0i7 zAzwi+fgzB*!kqneZtV(_V_TxA($_eE`bA>)eL;d)hWRWdNvJ+=Kn|FO1GQB zN*zN>Pv7z1D#<6AS$&U}W%rBS|6P1r&9()mO)OcpwHbzqei~(Dqd33l9hiC#=*wNb zy_hrE&M(ZVX~0nvDEv=s9^hR^!W_?O#g9f-sjvt@>t~8&8c&F8Z@L5ecuxJGYDni7 z7jmuol)7#g3FW^f0k;I&5ZbU+Hc@rj2iHw=GWt+_M}`A@P)Z6oVgu)FtQHQg#&dPE z457;{0Xr}hqNmN<+CUmEjypx_2pQvQuMbM@bUC>*1Er8X5JY` zk2&<86Q1DhiQ;BA&AWVK-_i=~W>_MD4nJqQR@4#q4FTHM3qg9agQEmXD=Ri`FH*RI zI5-db;X_tpHZehT2c2dUQM?%B6>=-wISfn=Oajq&aWB8WKUCuJ!aML2pr+=)kEPbk z+ca=tU0L{kiE9%2JjaM8kNFQgn}Iq)?3O#(j;b96$nDOo+L<86OM*a|%M@Pu&rlQi zo%yFUhmkhJVKJyLT=VEE8n<~LKe2rdWwF$oLCuyeLNYdy1Xr+q!#CX)#hF1~LBYtL z$?Gg`A1jDi#2F8apZ2WHKeaF}(hCuVVd`J25;R~wuvXXC2Q|IOdF;XhqId5j0N0@; znIh{pP7MvU^3TSIpg@n~y!nf|3uqL*6kTD%)&5Om|KE!dsvCs%5Y0tBksDtOFp-oH zQ#rq_t*-V8>BhD15q*NTBI>hZtZwC~GJnY(R{|OybF^HI%Klu7I_C;z`y|zlQO_y*E(l-`qupR&gj!vY%RfUlx9r4GX~c>Bwp)q(wx0NXk9? zKf(3C54E;|?~;z@TrOWJu2$3g)S%2(o_tNjF^SCJs|=;@iv1c@DLh^obn}w>m*NT zA(MOmC&7IfLOg!o=k6LTugWPTWXdT&eKGNuQfC&af9)_piO%p8n{`)40ts{12Pz>k zI5<3PTChJ6o`)65&N{=fu|&@*6hLeCsaE=J&`yY57(yCGhS zX-!Us+FJzJcmg_FTANhpEAXJ}gt)5U`Q^7NCxCvlxoFVg?LogH+3)|_PEX%>PL;e4 zd;t`bD=XXL`A+hEFA3vp{CuGNsN!;Y+*^6dDk_n3LqC~7Xt;uO=DfVJu+~Kt_nvNP zWWHOg(s2#JT4(DK^idgk_q2d#i>$a1RCE5XOY$7@o?k7 zR$dQ6qrt9M=;~cNj_Hmli*LyyB-dxc*R^!Q%w(8A1;Cd4mZu3OQ5Dj1aeglC=BAmS z-{Js%AO{$g1#$P0b;hWN+}P!E#7i*?pC|i==jv42mIkQZo`6IMXZj*u`CtD0=Yp7o zj2Jvmt>bR_-8~=(6ImpxrRe!=K7#@@x%s355dX?xR zw$9?=zIM@}q1eh_+q*A35;0J|Gm@S4d=z^I#1oHCfKS{p1Q5(ceH%BP5SsI2&przI zA8$7@GKdw1WKZ67oetb}0i57Q;sqRI?FJ(hG$8udh$UB5RaveCo+oM6TmEq)nNtND zrXj&wy5I+b2%5 zxos=o8Feas3z`LE^!{NdJv}ppF?*DU)= z5-;}N*;`Wl_VWNm=`~tpYaA7zRs+R5CX3O|^hwOrBexsoUuxfwAt=0LnE2|Mi!kJh zTZ0U87Pr?38cZ+aQ7fmK=C#~FU$@k;QSbUn2;tV%eM2D_^n@_F32vAOD8(;op$U~x zFS^dhgT%03i2ZB!sthD-AL^`${J&g)f%Aa^->pP#c^#enTIkq++KYkHDKj!j$S|$S z5%u=qt@Z8{Fq*zuM3x3s{~IcWWg}8QHmp_w;MhI=y+xmjW3`hv%i>>kyyl5Y6SJPvt@Xe z@9J88kfkvQR;W7}nV($7lYNoJ-AAP1elJ*_)A!u<8}X8=P@X?L#v~;0GuRBk83z@Z zW5j+TaaH@o%j6bPZ36c0HA<`21X7M_-h`Us7P@j*(l-Sh;H=^Zb9S#VuB>^`l3vU5 zWH#^~A9P3F8a~!w@#vy3sbsLmJS6uC?^x zey}K2-iP|1eDmHp|WYFauUYaHo^uPT>E*!?8CBuhssK@8IYY zXYmzsdRkfl4Bq-ZNl;*C_aY&I@bdLpuE*++E_wKX4ByHKd9g-9@Qibjsgvmuj5+L8 zv0mRA#)0uSN6n1^+?0Q}OSp5T*%$Ggb5~=p#E9aw{S}!0WcD3C*0gOtRpI~5HAFN zZUY0dqmuycTR%wSXe3_)hvmA!?m!koVAqYgE1q0=R+WG6##d|(bpzz7nP|MS|NLxz zHdKi#gv79$l{E+7Ivk}=7)P-kWdy=@TEKdi)^Ig;C@G)vh3CnIbifPB!qv6P0U=d2 z?*UcxQxM_)rvL%=<0FSsHt7%wIC1+PLL6kPh#=3rwkX2_uDN*wcg9SZ3QfJ+6+lDl z-bdtdv^&!=Ie`a$Ba#?2=1AoC&z(aPR*JUFY)$y-0GvHAWJJp;)1ix3Xp)da1mbO! z6mJS>wIM8&MJ0h7T)e(Oq9_sQa_VQorJ8ta(0>$zTV^aJQN|tpLr(!(?a{4U=I-;a zi@u;#c32!;36GTMXsx@0&fIy$f`#zkK1S5g)O_`U@JJyh?$&3%@p5w_U>I^)M!vj<$E3OmVM4)-Gk}`>;!v?D zdmq$cL!>Tcu9~fH{5K{`S~)aJdg+h51f2w>vIHHD@%-r@B_mPxz>Ii__`OKK7DooD z$j`VP8qi@T4usIrImrAs#+wWUGXq3cYr^8m87V&dnE{V!&z_z5ZT=m*X}j|n9KIId zlqyelHT(RN^)E(N1cuD`KE>AixvCI*Z*Smi?hPLCB*v^L1Fm5) zEOYaZmC_!9*Xb@xp#j&OrLCsFdv08_-4Gv?LuFy4?D|b#8w2##P%&3C8-56ViMzhO zHX1E_mp8z~tx?&|{elc(97{Cf_VHvG0;<-)#Kc6Z5J$3Pr?mGy*n1?EJl86h(~vLQ zZHL1yE-n1qR*+9h$;OMVA)oB~7&*Xq3MSXzk=I{}?%baX?$fyce5mD?l^iFrN zxf_!D~Y{&esJO#C>n;#LYWy?ZJiHh>fTQeW63oE&^^`%GPSzCXhmnzdNT8T7{d zpof@bz4)*-yZ{1a9;t*Z8Ak9EXU*B!AD-p|IJse}BOn=+)*Xl5d6sGJBZ#vMsprT;ntd&@8f}|{PiQL!#J-`5RJOyl>;>5t%-Z>td3ssAN4dw{FH!y7E30g=n(Dh zL(ncaV=s@3q%zm@m$?HDIYA9B47+0iggO?-TT@OX%pcQn$gG(jGN{+o0B@T$tAJ-O z^{*>O>l&x2P&zgCyIB{zdqzPIBK#NsqTcK?=HF{Y>xKR zRKq^_fCq@KZW*sSqGsIPvgPi_3M~dJ1dJ`hLn40n)7E=AEIgq7Y5HKr-Pk@cui$rcZlvr!4YN@xIZMfSH{jz{tY@38zdG$%;u&phVaxY0Wd<5rQ=LSa+vUv7SeR2_rJAv! zL<*YIAfHT^iPOPWT>z^w6X-Mxwk9i6L`|MQhk8R>kkg6p5~>8!5L zsCXDPqU_+`&04@h$i+AaIW5&r*L_uQXu=#nK4%$4Vr4b!886MjTjWkg`wQ&%N4XdT zK$L*aMyTpof@pH?_X!!}dKCcd_Jqv@pUN84AHWVq5q>N?n$+Gaj&gGNgviqCXs@-L35OWn=D6 z-dj_ea^Pl*`EuI@c;HJMJZ4tqy_DZ!SJl0k0E*f*lO;NGsNU|wMf({ov=a8^A8xyJ zYPOJi8o-G@N%U|WvhrLl3wrgwrOqyR7B6YB08J+uJU}_DiEPL9`Kk*%pNZ`TYEJIO zT+XX{Z2G5P(=%3n8V#=Ybwv}2uWyq~SLN>`1+g|DF$@TOdCZCYm?&4VAr6b&ms4B& z&w~W*{F|}G3)MOc?+L{W<8nc6#_YR|Zha29nz`z*;^dsH$c$mPJ6;>n?=Ge)blRC- z4&cRekSn4;lrnG%d?E)GW{AB_-dpKrWkPoJ)Kp>W2o3aNUFOE zbmE)e_F*dYy3y=9=nyc|>Rie!w7ySkV$C(+nzC@-3HNX_)b-+*E-ehF*M=|Flc zM^yLWj4_FX-PHbeXLZMS#3CIOnEVam%&ZFqr0Xq94$JY;Twu&_Az<~Yy7)#>Vo}ml zCF_&518wBX_bnW?VQ$4in)XUlAZPlfr)0jq>}Vvm{J1S)(T z3F4f(s{q+#3GYa)TKy zvauUdR^{Z>@_Nrkh1a6moe#|`Ur*hdEG-_ZHkK1bs2#Eo+O+%|Ks@rDkdr?}MKpfu zf#d2>4vy=hcn-P7M5>^7g97YR+f*Z1xw_$&bf}y*^G!zksnh9BlKF&*6q7#j!t0BYV7pD^I-kOfmfES~l6b9W zI2Vq!=G$ui`Zfhpta0p&mzr5^k2pD1qi?OP#T@REV_bRGu`%^Do%wM|;WA%r9@KKbjt*hUMB)8=H~Isdv>&dut1orx0tn(JOOPMnSU$e&PY z-ifpVD>=oHa`(Nol{lFK3-i*G5HZzD5r*8iouJ2qsx0}>E_dyu9RM!p!8=CV`%k>v#p1!1UKJ? zyf>8cDUUpv$sb+IBt(|GpLKQZ&P53Da7s}I2QrSe@j3P*T{tn`tPd5u5~$k|%R^ix z56V6L#IVVU6GS;Kc7>K&lyHD8h2tNFex-HAdeX%?HGX(3dzO|kQg%=a2H5F`gvqP;Q3 zqwBqZ$D-G=os%ZNe|eg+L+$Qdr2zlH-z7)sP-~|l4C?MACz0aa_MF)BP6CsUo1;Bf z{jZY*E-o%GUKP~WWvN%LuML0gc}h=msu8*3#&xQUOm{N0pCF1Kxxu3oCp=BOr{TPj zM_RXVKdQ$nzxw#xXuM=?%qpiK*$Z_dlAWC$-KcuGW3q|enjNFGEh!u+)|<5Qsq>JD70Qqr=e~ZU^+DRK_00%A zx8u^#KCw{b0x8n(Bz)`PGxs(3)%U)5oh~i!CGnNfM5#DmZZZa_@~i0W9=;9Kw)MI@ zFYOeQ>*56BDlQgCZ{nO7HH&I0Ie3N~ULF-In;K|s?GA@r=V_Leh<0vmPfTr2R2Mi* zL zCFC5O?Fn0w%7j|Jx0E|fBvz0}<-Im@x&BEJSSOEK6cg1g`_Wv7jhcL&&gQ@~ZTy#; zlkVdOc^`&zUDA&DbVnL_t&?S^`1&Q!zi+O6poG!&xwcUbXv`plQOTSmrJT4047hC0 zHVSoZ*VO?J^gJ$+s{o^m<1KsyH?ov9-=*ua<*xXm>nyqHMByQO1G5glb#s z{iS6eyhO8rdWps^Ui5dX6gOWj9jo9(NE1aDl- zBH!60dP$TG@N7tjPETjqWJV85chdB|9D7hzZ8qR;)mF2U;2ckDs5T2W-MyK?_F;3vmsAs^xOf>x1_#Imm345IPXR-lW`O5j zT2yR-$5x`zMWDrzhnrQ+G1cB>7J-BIMOkr?E)U~{d2Ma&PW9D@@!zEDHB!!*%VExI zGQYVQnIURdjHJK_mj^V~wmTmY>b{P_k4}&mDdJ{QbgtlVPT3w)=40PEF7X(flb(b`B2u;VXX^yUV`$%4@jn%LDRgRI|Z1+=k#A;fe z$!}EY#5i_GtTzmmPLX(B{xTY3qmLtjh%^O zUTQndoq7U`1Cz4SsxpnTFE9#uolm2|C%*cq36JlwkXz57DWrQVBu zr%Up(1cyKvTNG!XBU$5C1#ihH<0(!Oz!KMCeqBQ9>g8=ud zR|1}@8$YhM+a1ReI;sZKw5zJtTM|S$9J=<$%fuFc0YjcL>=||oU>%)jaoG3;yqU8+ z6H=8Vd09_{?!{DK!#!ba#FNGPYD+VCsfxa*j=Qa;UJ)73l!qkAEK4r_b(RAU(@vhN z?obi2rYV=%6Z`d6Tc@S6#DnRTA@@?oVeySBOE+x{M{rXyCEdvyybvFrQ!T0~NatgF zJMu{VdV|%&)Z*soI$!Z5LoR9hJ26}S(KXY8B=$~D$b^LDNYDqqqeC3KBF~XwGuoBF zhP`rMy9^Hv!8<6Vx?%SogT!FqHl<&?waSYkZlpZLd0QTG)YzFd{IP+~1UGfrg}4y{ zgtt5&wrp#Nn~&d*{W7~kX)wd@s&MRDH`3-7Em#WwMImFF+LYr*N1$&;<=|q8?SL*xKPA6ZGK3QN9DH0Re3Z}$8(w*YyGBt^rvI==K3lSkPr*lnWICi1IH7TJB>;≠j*1q z=R@P;B&LH#l+AJmi3yh=M`BPl3x9`gal_;=9p?Pfrsl0hEt^eCe_Drt=151)`8q}! z_Je`2-5gn{gROtjHU_bZe^@B$Qk-sti9_hbRivxV6zSW92$c*<;?k1xvM|#LfO}0> z<~=^R)+#O*r5Hg;CHSD&lhr4QKQusqUt+WHceqS5BUq)yv-uCkP|@Y0nFcnL_zTBrymhP!1uv--Hf$Za>+5wA{;Rz+eM&lyqV`{48FJ)igY^O@K8!F#^+?%_wvT#7<( zb&{GQxb6LDmQ!}Ii`$`B?96ndHDU?lZgz4UBwg-B>O{A;nIoMq0FhT|ZXKg!@dc7) zX*KI&4s3kKoSVohyXy7eTT8H3_N|K2V*P7Us@Z)YjRU{(qds)H^ZtJ)_u1cUbR0f9-&2F$Y{I>%va{}NNABJg&ksjq_~`FJ>(5v^v9b}e zL@;zl;md0fNl{f!V-0c6BitvfV+~QE!1%Kqrc1x;6+)il%PNepEwMEi;_72b2kh^Y zm9fV^^%$~1#O*F}+jLVkNkF}XJAo<~)9$!BW71ap3MN?lU9T@NezIY$_aW!F-xXsy zI4bR{!~jBn+PTVF3C@_etgEq44XP^HXHUbUAI$gt97`!t6Z##I!Zx&gYQG7XT8cUa zdR7cA^Kf7yEE9>}pbgIkV3xe8@0Ma?08(gL_>RoLI8HvSi5%tl6){EHqbMg)z*w}z(CQJ&OI%<>x@|DXOk%AA@MN))FGe&8rAwVOidOWtx2S#;vM|i+!S{Vo>hAa05inbT z^`Wbhn|ml+lPfJkq_8mHhz+9MOZW#^e~J1Ll0z7C{ZL(&k!^`FPwHu8LOq==84J;D z08%Ixh?p zS>x$6Id{G_k%)ND7<+c|k>xvTI&rM$K? zBL&2zY1%_T#B93Etjcpvim5EvAyyV4%!!_NGL_25>gFx8X(pTjh8DH zukn;JehN_KHmCo_hR9tzN@i;oL!1ENs4AeX%EVhZ!<1ZWlp$nTgVpnvS9W4A_-T;> zYdcv`Tv8wX@IPz*DPFy-JZ1mVa8;I7Syo$O)dj0ASardw3;yRWc>J~VjCoBUGliVL S)nmZQaxf=xe!SynfB6fhov void: velocity = direction * pull_speed move_and_slide() +func get_attraction_force(pos: Vector2) -> Vector2: + # 返回 (direction, strength) 格式 + var dir := (global_position - pos).normalized() + var strength := 1500 # 调整这个值控制吸引力转向速度 + return dir * strength + ##如果玩家进入收集区域,则切换为已收集状态。 func _on_player_collected(body:CharacterBody2D) -> void: if body is Player: diff --git a/_props/dark_material_ball/dark_material_ball.tscn b/_props/dark_material_ball/dark_material_ball.tscn index f3b1b31..bfdccad 100644 --- a/_props/dark_material_ball/dark_material_ball.tscn +++ b/_props/dark_material_ball/dark_material_ball.tscn @@ -17,6 +17,7 @@ radius = 34.0147 collision_layer = 16 collision_mask = 2 script = ExtResource("1_8vsnl") +pull_speed = null [node name="Sprite2D" type="Sprite2D" parent="."] unique_name_in_owner = true @@ -36,7 +37,7 @@ debug_color = Color(0.19215687, 0.6431373, 0, 0) [node name="HookAttractVolumn" type="Area2D" parent="."] unique_name_in_owner = true -collision_layer = 16 +collision_layer = 32 collision_mask = 0 [node name="CollisionShape2D" type="CollisionShape2D" parent="HookAttractVolumn"] diff --git a/_scene/level1/l0_s0.tscn b/_scene/level1/l0_s0.tscn index 042dd1f..376f7c8 100644 --- a/_scene/level1/l0_s0.tscn +++ b/_scene/level1/l0_s0.tscn @@ -225,12 +225,16 @@ tile_set = ExtResource("24_uiy5k") [node name="DarkMaterialBall" parent="." instance=ExtResource("30_mu7ca")] position = Vector2(-164, 1283) +pull_speed = 800.0 [node name="DarkMaterialBall2" parent="." instance=ExtResource("30_mu7ca")] position = Vector2(116, 1076) +pull_speed = 800.0 [node name="DarkMaterialBall3" parent="." instance=ExtResource("30_mu7ca")] position = Vector2(33, 1188) +pull_speed = 800.0 [node name="DarkMaterialBall4" parent="." instance=ExtResource("30_mu7ca")] position = Vector2(-78, 1192) +pull_speed = 800.0 diff --git a/_scene/level1/l1_s1_new.tscn b/_scene/level1/l1_s1_new.tscn index 334d65f..ee6dbea 100644 --- a/_scene/level1/l1_s1_new.tscn +++ b/_scene/level1/l1_s1_new.tscn @@ -183,5 +183,5 @@ effects = Array[ExtResource("14_37hpe")]([SubResource("Resource_ubvm0")]) [node name="TileMapLayer" type="TileMapLayer" parent="." groups=["GRAPABLE"]] texture_filter = 1 -tile_map_data = PackedByteArray("AAD7/wIAAAAGAAMAAAD8/wIAAAACAAIAAAD9/wIAAAACAAIAAAD+/wIAAAACAAIAAAD//wIAAAACAAIAAAAAAAIAAAACAAIAAAABAAIAAAACAAIAAAACAAIAAAACAAIAAAADAAIAAAACAAIAAAD7//v/AAACAAIAAAD7//z/AAADAAIAAAD7//3/AAADAAIAAAD7//7/AAADAAIAAAD7////AAADAAIAAAD7/wAAAAADAAIAAAD7/wEAAAADAAIAAAD8//n/AAACAAIAAAD8//r/AAACAAIAAAD8//v/AAACAAIAAAD9//n/AAACAAIAAAD9//r/AAACAAIAAADu//H/AAACAAIAAADu//L/AAACAAIAAADu//P/AAACAAIAAADu//T/AAACAAIAAADu//X/AAACAAIAAADu//b/AAACAAIAAADu//f/AAACAAIAAADu//j/AAACAAIAAADu//n/AAACAAIAAADu//r/AAACAAIAAADu//v/AAACAAIAAADu//z/AAACAAIAAADu//3/AAACAAIAAADu//7/AAACAAIAAADu////AAACAAIAAADu/wAAAAACAAIAAADu/wEAAAACAAIAAADu/wIAAAACAAIAAADu/wMAAAACAAIAAADu/wQAAAACAAIAAADu/wUAAAACAAIAAADv//H/AAACAAIAAADv//L/AAACAAIAAADv//P/AAACAAIAAADv//T/AAACAAIAAADv//X/AAACAAIAAADv//b/AAACAAIAAADv//f/AAACAAIAAADv//j/AAACAAIAAADv//n/AAACAAIAAADv//r/AAACAAIAAADv//v/AAACAAIAAADv//z/AAACAAIAAADv//3/AAACAAIAAADv//7/AAACAAIAAADv////AAACAAIAAADv/wAAAAACAAIAAADv/wEAAAACAAIAAADv/wIAAAACAAIAAADv/wMAAAACAAIAAADv/wQAAAACAAIAAADv/wUAAAACAAIAAADw//H/AAACAAIAAADw//L/AAACAAIAAADw//P/AAACAAIAAADw//T/AAACAAIAAADw//X/AAACAAIAAADw//b/AAACAAIAAADw//f/AAACAAIAAADw//j/AAACAAIAAADw//n/AAACAAIAAADw//r/AAACAAIAAADw//v/AAACAAIAAADw//z/AAACAAIAAADw//3/AAACAAIAAADw//7/AAACAAIAAADw////AAACAAIAAADw/wAAAAACAAIAAADw/wEAAAACAAIAAADw/wIAAAACAAIAAADw/wMAAAACAAIAAADw/wQAAAACAAIAAADw/wUAAAACAAIAAADx//H/AAACAAIAAADx//L/AAACAAIAAADx//P/AAACAAIAAADx//T/AAACAAIAAADx//X/AAACAAIAAADx//b/AAACAAIAAADx//f/AAACAAIAAADx//j/AAACAAIAAADx//n/AAACAAIAAADx//r/AAACAAIAAADx//v/AAACAAIAAADx//z/AAACAAIAAADx//3/AAACAAIAAADx//7/AAACAAIAAADx////AAACAAIAAADx/wAAAAACAAIAAADx/wEAAAACAAIAAADx/wIAAAACAAIAAADx/wMAAAACAAIAAADx/wQAAAACAAIAAADx/wUAAAACAAIAAADy//H/AAACAAIAAADy//L/AAACAAIAAADy//P/AAACAAIAAADy//T/AAACAAIAAADy//X/AAACAAIAAADy//b/AAACAAIAAADy//f/AAACAAIAAADy//j/AAACAAIAAADy//n/AAACAAIAAADy//r/AAACAAIAAADy//v/AAACAAIAAADy//z/AAACAAIAAADy//3/AAACAAIAAADy//7/AAACAAIAAADy////AAACAAIAAADy/wAAAAACAAIAAADy/wEAAAACAAIAAADy/wIAAAACAAIAAADy/wMAAAACAAIAAADy/wQAAAACAAIAAADy/wUAAAACAAIAAADz//H/AAACAAIAAADz//L/AAACAAIAAADz//P/AAACAAIAAADz//T/AAACAAIAAADz//X/AAACAAIAAADz//b/AAACAAIAAADz//f/AAACAAIAAADz//j/AAACAAIAAADz//n/AAACAAIAAADz//r/AAACAAIAAADz//v/AAACAAIAAADz//z/AAACAAIAAADz//3/AAACAAIAAADz//7/AAACAAIAAADz////AAACAAIAAADz/wAAAAACAAIAAADz/wEAAAACAAIAAADz/wIAAAACAAIAAADz/wMAAAACAAIAAADz/wQAAAACAAIAAADz/wUAAAACAAIAAAD0//H/AAACAAIAAAD0//L/AAACAAIAAAD0//P/AAACAAIAAAD0//T/AAACAAIAAAD0//X/AAACAAIAAAD0//b/AAACAAIAAAD0//f/AAACAAIAAAD0//j/AAACAAIAAAD0//n/AAACAAIAAAD0//r/AAACAAIAAAD0//v/AAACAAIAAAD0//z/AAACAAIAAAD0//3/AAACAAIAAAD0//7/AAACAAIAAAD0////AAACAAIAAAD0/wAAAAACAAIAAAD0/wEAAAACAAIAAAD0/wIAAAACAAIAAAD0/wMAAAACAAIAAAD0/wQAAAACAAIAAAD0/wUAAAACAAIAAAD1//H/AAACAAIAAAD1//L/AAACAAIAAAD1//P/AAACAAIAAAD1//T/AAACAAIAAAD1//X/AAACAAIAAAD1//b/AAACAAIAAAD1//f/AAACAAIAAAD1//j/AAACAAIAAAD1//n/AAACAAIAAAD1//r/AAACAAIAAAD1//v/AAACAAIAAAD1//z/AAACAAIAAAD1//3/AAACAAIAAAD1//7/AAACAAIAAAD1////AAACAAIAAAD1/wAAAAACAAIAAAD1/wEAAAACAAIAAAD1/wIAAAACAAIAAAD1/wMAAAACAAIAAAD1/wQAAAACAAIAAAD1/wUAAAACAAIAAAD2//H/AAACAAIAAAD2//L/AAACAAIAAAD2//P/AAACAAIAAAD2//T/AAACAAIAAAD2//X/AAACAAIAAAD2//b/AAACAAIAAAD2//f/AAACAAIAAAD2//j/AAACAAIAAAD2//n/AAACAAIAAAD2//r/AAACAAIAAAD2//v/AAACAAIAAAD2//z/AAACAAIAAAD2//3/AAACAAIAAAD2//7/AAACAAIAAAD2////AAACAAIAAAD2/wAAAAACAAIAAAD2/wEAAAACAAIAAAD2/wIAAAACAAIAAAD2/wMAAAACAAIAAAD2/wQAAAACAAIAAAD2/wUAAAACAAIAAAD3//H/AAACAAIAAAD3//L/AAACAAIAAAD3//P/AAACAAIAAAD3//T/AAACAAIAAAD3//X/AAACAAIAAAD3//b/AAACAAIAAAD3//f/AAACAAIAAAD3//j/AAACAAIAAAD3//n/AAACAAIAAAD3//r/AAACAAIAAAD3//v/AAACAAIAAAD3//z/AAACAAIAAAD3//3/AAACAAIAAAD3//7/AAACAAIAAAD3////AAACAAIAAAD3/wAAAAACAAIAAAD3/wEAAAACAAIAAAD3/wIAAAACAAIAAAD3/wMAAAACAAIAAAD3/wQAAAACAAIAAAD3/wUAAAACAAIAAAD4//H/AAACAAIAAAD4//L/AAACAAIAAAD4//P/AAACAAIAAAD4//T/AAACAAIAAAD4//X/AAACAAIAAAD4//b/AAACAAIAAAD4//f/AAACAAIAAAD4//j/AAACAAIAAAD4//n/AAACAAIAAAD4//r/AAACAAIAAAD4//v/AAACAAIAAAD4//z/AAACAAIAAAD4//3/AAACAAIAAAD4//7/AAACAAIAAAD4////AAACAAIAAAD4/wAAAAACAAIAAAD4/wEAAAACAAIAAAD4/wIAAAACAAIAAAD4/wMAAAACAAIAAAD4/wQAAAACAAIAAAD4/wUAAAACAAIAAAD5//H/AAACAAIAAAD5//L/AAACAAIAAAD5//P/AAACAAIAAAD5//T/AAACAAIAAAD5//X/AAACAAIAAAD5//b/AAACAAIAAAD5//f/AAACAAIAAAD5//j/AAACAAIAAAD5//n/AAACAAIAAAD5//r/AAACAAIAAAD5//v/AAACAAIAAAD5//z/AAACAAIAAAD5//3/AAACAAIAAAD5//7/AAACAAIAAAD5////AAACAAIAAAD5/wAAAAACAAIAAAD5/wEAAAACAAIAAAD5/wIAAAACAAIAAAD5/wMAAAACAAIAAAD5/wQAAAACAAIAAAD5/wUAAAACAAIAAAD6//H/AAACAAIAAAD6//L/AAACAAIAAAD6//P/AAACAAIAAAD6//T/AAACAAIAAAD6//X/AAACAAIAAAD6//b/AAACAAIAAAD6//f/AAACAAIAAAD6//j/AAACAAIAAAD6//n/AAACAAIAAAD6//r/AAACAAIAAAD6//v/AAACAAIAAAD6//z/AAACAAIAAAD6//3/AAACAAIAAAD6//7/AAACAAIAAAD6////AAACAAIAAAD6/wAAAAACAAIAAAD6/wEAAAACAAIAAAD6/wIAAAACAAIAAAD6/wMAAAACAAIAAAD6/wQAAAACAAIAAAD6/wUAAAACAAIAAAD7/wMAAAACAAIAAAD7/wQAAAACAAIAAAD7/wUAAAACAAIAAAD7/wYAAAACAAIAAAD8/wMAAAACAAIAAAD8/wQAAAACAAIAAAD8/wUAAAACAAIAAAD8/wYAAAACAAIAAAD9/wMAAAACAAIAAAD9/wQAAAACAAIAAAD9/wUAAAACAAIAAAD9/wYAAAACAAIAAAD+/wMAAAACAAIAAAD+/wQAAAACAAIAAAD+/wUAAAACAAIAAAD+/wYAAAACAAIAAAD//wMAAAACAAIAAAD//wQAAAACAAIAAAD//wUAAAACAAIAAAD//wYAAAACAAIAAAAAAAMAAAACAAIAAAAAAAQAAAACAAIAAAAAAAUAAAACAAIAAAAAAAYAAAACAAIAAAABAAMAAAACAAIAAAABAAQAAAACAAIAAAABAAUAAAACAAIAAAABAAYAAAACAAIAAAACAAMAAAACAAIAAAACAAQAAAACAAIAAAACAAUAAAACAAIAAAACAAYAAAACAAIAAAADAAMAAAACAAIAAAADAAQAAAACAAIAAAADAAUAAAACAAIAAAADAAYAAAACAAIAAADy/wYAAAACAAIAAADy/wcAAAACAAIAAADy/wgAAAACAAIAAADy/wkAAAACAAIAAADy/woAAAACAAIAAADy/wsAAAACAAIAAADz/wYAAAACAAIAAADz/wcAAAACAAIAAADz/wgAAAACAAIAAADz/wkAAAACAAIAAADz/woAAAACAAIAAADz/wsAAAACAAIAAAD0/wYAAAACAAIAAAD0/wcAAAACAAIAAAD0/wgAAAACAAIAAAD0/wkAAAACAAIAAAD0/woAAAACAAIAAAD0/wsAAAACAAIAAAD1/wYAAAACAAIAAAD1/wcAAAACAAIAAAD1/wgAAAACAAIAAAD1/wkAAAACAAIAAAD1/woAAAACAAIAAAD1/wsAAAACAAIAAAD2/wYAAAACAAIAAAD2/wcAAAACAAIAAAD2/wgAAAACAAIAAAD2/wkAAAACAAIAAAD2/woAAAACAAIAAAD2/wsAAAACAAIAAAD3/wYAAAACAAIAAAD3/wcAAAACAAIAAAD3/wgAAAACAAIAAAD3/wkAAAACAAIAAAD3/woAAAACAAIAAAD3/wsAAAACAAIAAAD4/wYAAAACAAIAAAD4/wcAAAACAAIAAAD4/wgAAAACAAIAAAD4/wkAAAACAAIAAAD4/woAAAACAAIAAAD4/wsAAAACAAIAAAD5/wYAAAACAAIAAAD5/wcAAAACAAIAAAD5/wgAAAACAAIAAAD5/wkAAAACAAIAAAD5/woAAAACAAIAAAD5/wsAAAACAAIAAAD6/wYAAAACAAIAAAD6/wcAAAACAAIAAAD6/wgAAAACAAIAAAD6/wkAAAACAAIAAAD6/woAAAACAAIAAAD6/wsAAAACAAIAAAD7/wcAAAACAAIAAAD7/wgAAAACAAIAAAD7/wkAAAACAAIAAAD7/woAAAACAAIAAAD7/wsAAAACAAIAAAD8/wcAAAACAAIAAAD8/wgAAAACAAIAAAD8/wkAAAACAAIAAAD8/woAAAACAAIAAAD8/wsAAAACAAIAAAD9/wcAAAACAAIAAAD9/wgAAAACAAIAAAD9/wkAAAACAAIAAAD9/woAAAACAAIAAAD9/wsAAAACAAIAAAD+/wcAAAACAAIAAAD+/wgAAAACAAIAAAD+/wkAAAACAAIAAAD+/woAAAACAAIAAAD+/wsAAAACAAIAAAD//wcAAAACAAIAAAD//wgAAAACAAIAAAD//wkAAAACAAIAAAD//woAAAACAAIAAAD//wsAAAACAAIAAAAAAAcAAAACAAIAAAAAAAgAAAACAAIAAAAAAAkAAAACAAIAAAAAAAoAAAACAAIAAAAAAAsAAAACAAIAAAABAAcAAAACAAIAAAABAAgAAAACAAIAAAABAAkAAAACAAIAAAABAAoAAAACAAIAAAABAAsAAAACAAIAAAACAAcAAAACAAIAAAACAAgAAAACAAIAAAACAAkAAAACAAIAAAACAAoAAAACAAIAAAACAAsAAAACAAIAAAADAAcAAAACAAIAAAADAAgAAAACAAIAAAADAAkAAAACAAIAAAADAAoAAAACAAIAAAADAAsAAAACAAIAAAD7/+7/AAACAAIAAAD7/+//AAACAAIAAAD7//D/AAACAAIAAAD7//H/AAACAAIAAAD7//L/AAACAAIAAAD7//P/AAACAAIAAAD7//T/AAACAAIAAAD7//X/AAACAAIAAAD7//b/AAACAAIAAAD7//f/AAACAAIAAAD7//j/AAACAAIAAAD7//n/AAACAAIAAAD7//r/AAACAAIAAAD8/+7/AAACAAIAAAD8/+//AAACAAIAAAD8//D/AAACAAIAAAD8//H/AAACAAIAAAD8//L/AAACAAIAAAD8//P/AAACAAIAAAD8//T/AAACAAIAAAD8//X/AAACAAIAAAD8//b/AAACAAIAAAD8//f/AAACAAIAAAD8//j/AAACAAIAAAD9/+7/AAACAAIAAAD9/+//AAACAAIAAAD9//D/AAACAAIAAAD9//H/AAACAAIAAAD9//L/AAACAAIAAAD9//P/AAACAAIAAAD9//T/AAACAAIAAAD9//X/AAACAAIAAAD9//b/AAACAAIAAAD9//f/AAACAAIAAAD9//j/AAACAAIAAAA=") +tile_map_data = PackedByteArray("AAD7/wEAAgAGAAEAAAD7/wIAAgAGAAIAAAD8/wIAAgAHAAIAAAD7/wAAAgAMAAkAAAD7////AgAMAAkAAAD7//7/AgAMAAkAAAA=") tile_set = ExtResource("23_r2xfa") diff --git a/_tileset/level1.tres b/_tileset/level1.tres index b48ecbd..ff0c99b 100644 --- a/_tileset/level1.tres +++ b/_tileset/level1.tres @@ -1,92 +1,78 @@ -[gd_resource type="TileSet" load_steps=7 format=3 uid="uid://cup1q1upvp18h"] +[gd_resource type="TileSet" load_steps=5 format=3 uid="uid://cup1q1upvp18h"] -[ext_resource type="Texture2D" uid="uid://7psxuet3jk1p" path="res://_asset/ksw/basicTile.png" id="1_ln1fl"] [ext_resource type="Texture2D" uid="uid://dd622t4mw5vva" path="res://_asset/ksw/basicTile01.png" id="2_mucy5"] [ext_resource type="Texture2D" uid="uid://cwet2kw1mngmf" path="res://_asset/ksw/basicTile02.png" id="3_u6jqb"] -[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_ln1fl"] -texture = ExtResource("1_ln1fl") -texture_region_size = Vector2i(96, 96) -1:1/0 = 0 -2:1/0 = 0 -2:2/0 = 0 -3:2/0 = 0 -3:3/0 = 0 -3:1/0 = 0 -1:2/0 = 0 -1:3/0 = 0 -2:3/0 = 0 -6:1/0 = 0 -7:1/0 = 0 -8:1/0 = 0 -8:2/0 = 0 -8:3/0 = 0 -7:3/0 = 0 -6:3/0 = 0 -6:2/0 = 0 -7:2/0 = 0 -10:1/0 = 0 -11:1/0 = 0 -12:1/0 = 0 -9:5/0 = 0 -10:6/0 = 0 -11:5/0 = 0 -10:5/0 = 0 -9:6/0 = 0 -11:6/0 = 0 -7:5/0 = 0 -7:6/0 = 0 -6:6/0 = 0 -6:5/0 = 0 -3:5/0 = 0 -3:6/0 = 0 -4:6/0 = 0 -4:5/0 = 0 -1:5/0 = 0 -1:6/0 = 0 -1:7/0 = 0 -1:9/0 = 0 -1:10/0 = 0 -2:10/0 = 0 -2:9/0 = 0 -1:8/0 = 0 -4:9/0 = 0 -4:10/0 = 0 -5:10/0 = 0 -5:9/0 = 0 -5:8/0 = 0 -7:8/0 = 0 -8:8/0 = 0 -8:9/0 = 0 -8:10/0 = 0 -7:9/0 = 0 -6:9/0 = 0 -10:9/0 = 0 -11:9/0 = 0 -11:10/0 = 0 -10:10/0 = 0 -9:9/0 = 0 -9:10/0 = 0 -10:8/0 = 0 -11:8/0 = 0 -8:5/0 = 0 -9:4/0 = 0 -11:4/0 = 0 -7:4/0 = 0 -3:4/0 = 0 -1:4/0 = 0 - [sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_u6jqb"] texture = ExtResource("2_mucy5") texture_region_size = Vector2i(96, 96) +3:1/0 = 0 +3:2/0 = 0 +2:2/0 = 0 +5:1/0 = 0 +5:2/0 = 0 +6:2/0 = 0 +8:1/0 = 0 +8:2/0 = 0 +9:1/0 = 0 +11:1/0 = 0 +12:1/0 = 0 +12:2/0 = 0 +12:4/0 = 0 +12:5/0 = 0 +12:6/0 = 0 +10:6/0 = 0 +10:5/0 = 0 +9:5/0 = 0 +9:6/0 = 0 +7:5/0 = 0 +6:5/0 = 0 +6:6/0 = 0 +7:6/0 = 0 +4:6/0 = 0 +4:5/0 = 0 +3:5/0 = 0 +2:5/0 = 0 +2:6/0 = 0 +3:6/0 = 0 [sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_wtljp"] texture = ExtResource("3_u6jqb") texture_region_size = Vector2i(96, 96) 10:6/0 = 0 +6:1/0 = 0 +6:2/0 = 0 +6:3/0 = 0 +6:4/0 = 0 +7:2/0 = 0 +7:3/0 = 0 +11:1/0 = 0 +12:1/0 = 0 +12:2/0 = 0 +12:3/0 = 0 +12:4/0 = 0 +11:4/0 = 0 +9:6/0 = 0 +8:6/0 = 0 +5:8/0 = 0 +5:9/0 = 0 +5:10/0 = 0 +6:10/0 = 0 +7:10/0 = 0 +7:9/0 = 0 +7:8/0 = 0 +6:8/0 = 0 +10:8/0 = 0 +11:8/0 = 0 +12:8/0 = 0 +12:9/0 = 0 +12:10/0 = 0 +11:10/0 = 0 +10:10/0 = 0 +10:9/0 = 0 +11:9/0 = 0 [resource] tile_size = Vector2i(96, 96) -sources/0 = SubResource("TileSetAtlasSource_ln1fl") sources/1 = SubResource("TileSetAtlasSource_u6jqb") sources/2 = SubResource("TileSetAtlasSource_wtljp") diff --git a/addons/reedcomponent/grap_hook/garpping_hook_v2.tscn b/addons/reedcomponent/grap_hook/garpping_hook_v2.tscn index 0449388..00d8581 100644 --- a/addons/reedcomponent/grap_hook/garpping_hook_v2.tscn +++ b/addons/reedcomponent/grap_hook/garpping_hook_v2.tscn @@ -1,7 +1,10 @@ -[gd_scene load_steps=2 format=3 uid="uid://ddwoxlqluxiq5"] +[gd_scene load_steps=3 format=3 uid="uid://ddwoxlqluxiq5"] [ext_resource type="Script" uid="uid://bvxgviq7l64ck" path="res://addons/reedcomponent/grap_hook/garpping_hook_v_2.gd" id="1_jrg4x"] +[sub_resource type="CircleShape2D" id="CircleShape2D_jrg4x"] +radius = 5.0990195 + [node name="GarppingHookV2" type="Node2D"] script = ExtResource("1_jrg4x") @@ -15,3 +18,12 @@ unique_name_in_owner = true target_position = Vector2(80, 0) collision_mask = 20 collide_with_areas = true + +[node name="TipDetector" type="Area2D" parent="."] +position = Vector2(80, 0) +collision_layer = 0 +collision_mask = 32 + +[node name="CollisionShape2D" type="CollisionShape2D" parent="TipDetector"] +shape = SubResource("CircleShape2D_jrg4x") +debug_color = Color(0, 0.6, 0.69803923, 0) diff --git a/addons/reedcomponent/grap_hook/garpping_hook_v_2.gd b/addons/reedcomponent/grap_hook/garpping_hook_v_2.gd index d122fc7..6528b62 100644 --- a/addons/reedcomponent/grap_hook/garpping_hook_v_2.gd +++ b/addons/reedcomponent/grap_hook/garpping_hook_v_2.gd @@ -13,6 +13,7 @@ extends Node2D @onready var line_2d: Line2D = %Line2D @onready var ray: RayCast2D = %RayCast2D +@onready var tip_detector: Area2D = $TipDetector var _tween: Tween @@ -57,7 +58,8 @@ func start_stretching(direction: Vector2) -> void: _cached_cancel = false _stretching_dir = direction.normalized() _current_length = 0.0 - + _current_velocity = Vector2.ZERO # 重置速度 + _dir_id = _get_direction_id(direction,8) func end_stretching(force_end: bool = false) -> bool: @@ -68,6 +70,7 @@ func end_stretching(force_end: bool = false) -> bool: _is_stretching = false _stretching_dir = Vector2.ZERO + _current_velocity = Vector2.ZERO # 重置速度 return true func is_stretching() -> bool: @@ -97,16 +100,42 @@ func _process(_delta: float) -> void: # Core Logic # ================= +## 钩爪当前速度 +var _current_velocity: Vector2 = Vector2.ZERO +## 最大速度上限 +@export var max_speed: float = 800.0 + func _update_stretching(delta: float) -> void: - # 先嘗試推進 - var next_length := _current_length + stretching_speed * delta + # 检测前端点的吸引力 (direction, strength) + var attract_config := _get_attraction_at(global_position + _current_velocity.normalized() * _current_length) + + # 初始速度(沿当前方向持续向前) + if _current_velocity == Vector2.ZERO: + _current_velocity = get_stretching_dir() * stretching_speed + + # 应用吸引力作为加速度 + if attract_config.strength > 0: + var acceleration : Vector2 = attract_config.dir * attract_config.strength + _current_velocity += acceleration * delta + + # 限制最大速度 + if _current_velocity.length() > max_speed: + _current_velocity = _current_velocity.normalized() * max_speed + + # 基于更新后的速度预测“下一帧累计长度” + var velocity_dir := _current_velocity.normalized() + var velocity_mag := _current_velocity.length() + + var next_length := _current_length + velocity_mag * delta next_length = min(next_length, max_length) - # 使用 getter 获取当前方向(允许外部复写) - var current_dir := get_stretching_dir() + # 预测末端位置:起点 + 方向 * 累计长度 + var predicted_pos := global_position + velocity_dir * next_length - # 先用「下一幀長度」做 Ray - ray.target_position = current_dir * next_length + tip_detector.global_position = predicted_pos + + # RayCast 也应该射到“累计长度” + ray.target_position = velocity_dir * next_length ray.force_raycast_update() # ===== 命中檢測(最高優先)===== @@ -114,13 +143,12 @@ func _update_stretching(delta: float) -> void: var collider := ray.get_collider() if collider is Node2D and collider.is_in_group(GRAPABLE_GROUP): var hit_pos := ray.get_collision_point() - _current_length = global_position.distance_to(hit_pos) - ray.target_position = current_dir * _current_length + ray.target_position = velocity_dir * _current_length _handle_hit(collider as Node2D, hit_pos) return - # ===== 沒命中,才正式推進 ===== + # ===== 没命中,才正式推進 ===== _current_length = next_length # 取消邏輯 @@ -134,9 +162,33 @@ func _update_stretching(delta: float) -> void: stretching_finished.emit(true, null) end_stretching(true) +## 在指定位置检测吸引力,返回 {"dir": Vector2, "strength": float} +func _get_attraction_at(pos: Vector2) -> Dictionary: + var total_force := Vector2.ZERO + + # 检测 Areas + for area in tip_detector.get_overlapping_areas(): + if area is Node2D and area.has_method("get_attraction_force"): + total_force += area.get_attraction_force(pos) + elif area.owner is Node2D and area.owner.has_method("get_attraction_force"): + total_force += area.owner.get_attraction_force(pos) + + # 检测 Bodies + for body in tip_detector.get_overlapping_bodies(): + if body is Node2D and body.has_method("get_attraction_force"): + total_force += body.get_attraction_force(pos) + elif body.owner is Node2D and body.owner.has_method("get_attraction_force"): + total_force += body.owner.get_attraction_force(pos) + + # 返回 {"dir": direction, "strength": magnitude} + if total_force != Vector2.ZERO: + return {"dir": total_force.normalized(), "strength": total_force.length()} + return {"dir": Vector2.ZERO, "strength": 0.0} + func _handle_hit(target: Node2D, hit_pos: Vector2) -> void: _is_stretching = false _stretching_dir = Vector2.ZERO + _current_velocity = Vector2.ZERO # 重置速度 ray.target_position = to_local(hit_pos) @@ -155,6 +207,7 @@ func _release_hook() -> void: # 1. 停止拉伸(保險) _is_stretching = false _stretching_dir = Vector2.ZERO + _current_velocity = Vector2.ZERO # 重置速度 _cached_cancel = false _current_length = 0.0 diff --git a/project.godot b/project.godot index ab3ebc9..093486a 100644 --- a/project.godot +++ b/project.godot @@ -97,3 +97,4 @@ grap_hook={ 2d_physics/layer_3="Environment" 2d_physics/layer_4="Damage" 2d_physics/layer_5="Collectable" +2d_physics/layer_6="Hook_Attract"