From 3d4229cb4368a1711d89f9a8eb29ab7f42289665 Mon Sep 17 00:00:00 2001 From: chendian <-> Date: Mon, 6 Nov 2023 06:01:10 +0800 Subject: [PATCH] =?UTF-8?q?=E5=85=B3=E5=8D=A1=E5=B9=B3=E6=BB=91=E5=8A=A0?= =?UTF-8?q?=E8=BD=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../character/_design_hero01.aseprite | Bin 3960 -> 4085 bytes .../animation/character/_design_hero01.png | Bin 4979 -> 3115 bytes .../animation/character/hero01_move.aseprite | Bin 44804 -> 38667 bytes resource/animation/character/hero01_move.png | Bin 18286 -> 18264 bytes scene/level/level01_front_alley.tscn | 2 +- scene/ui/hud_screen.tscn | 62 +++++++++++++++++- scene/ui/item/headbar.tscn | 4 +- scene/ui/item/hit_text.tscn | 11 ++-- script/_global/global.gd | 9 ++- script/_global/setting.gd | 1 + script/character/buff.gd | 2 + script/character/player/player_info.gd | 2 + script/manager/character_manager.gd | 14 ++++ script/manager/level_manager.gd | 46 +++++++++++-- script/manager/signal_manager.gd | 2 + script/ui/{headbar => hud}/headbar.gd | 0 script/ui/{headbar => hud}/headbar_page.gd | 0 script/ui/{headbar => hud}/hit_text.gd | 0 script/ui/hud/loading_page.gd | 14 ++++ 19 files changed, 148 insertions(+), 21 deletions(-) rename script/ui/{headbar => hud}/headbar.gd (100%) rename script/ui/{headbar => hud}/headbar_page.gd (100%) rename script/ui/{headbar => hud}/hit_text.gd (100%) create mode 100644 script/ui/hud/loading_page.gd diff --git a/resource/animation/character/_design_hero01.aseprite b/resource/animation/character/_design_hero01.aseprite index 45b32a7453ce9f34cdcb323a3f512bb17c4f111e..912e7201e93ce555a6ef555dc0664da218d583a0 100644 GIT binary patch delta 1373 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 literal 4979 zcmZ8lXH-+&wml(qq$9moDS{}yS7{0&C`cEOUPWpG2`Cy=y3(6~0*X{cdZH8&kSfJc z0wPLp5(oj3d;H!V_r3f6BpGMyleOmFYt1$1PP%4k!bs0c4*&q8nW@or0DvID-$+_& z@ROphlL7pKgk3i=0BVN#R{?g<% z-0Mr4XD+g?0}xD@CTS>UA@La<0F2Q`)GeINzF7ygXy_kgx_>2$c$aC0g1P)E0I+yG zafg;Pb31aNPr73k^qap!C=ET=l-gSkc*@Ui051K;7S;lyHWj|x+i(rsIw`m1)<>rF zgs0(1z-{JIzyRZlHilzmeG{$Pi3J4$q{mM zMeAX%vGEmWH}rm-9v-YkzOu?^#H3U9VfVu^Gud;`E1{ajLw0^n_MG71pz4i9L||uM z?;SKNll-3?2nS`%t$T}qEu;a|_Hzr&Fl=;sR!Sr*&vw)+1xEll=(gXC9mOjkzNo7c z#tG1rhY5^G<>=Q?k`l=sW=+%Q;KYZ}7muG;A|(u(VeU%BgSjyQ(;ePYz=Gadqt9zK zD2DI^H-?SRm5rOIz}>L7OF8={yX;4q6_H0d@o|O5LhzCTN<(kb{TqQHF?_ir=;V%f zE~PLp2}HQ-9HlhYA!5vagY!mq91Yzz^u z$F8wKhR}R#ft`E%+g92;-h{NlDMjzxG(SNTKsyd{1Tkb(Z1%qE_6B3>e}QgEu( zpOS4J%{C2IlH(GyS_~xfG9Dg}i#fiUI>T9B^C|w}#izIMLI4ug!tB4jIwclo$qG^ z*cN5nJrSxKQAf@b(3)|j=V!K2J(?y0cGOAvE!}E6T|kiBiJ+mBWYkGD9|QXH`zLnk zQRI$F-MI%~g!=+IRJrHKo!_AIbV0E{+|!!PA}SaRGiYu=mTv&F>s{{^USCO4wk*NU|wAOW3uR59=vmO`6O`15UUfKxuIuPSN774-4%{O$Bazd3bhJL zSMD>SD;cumu7rrk2N5r$iN{rdWuj8=HF_BQG*77thkTvEZ?Mbz zt;!-@tKqZanyDnY>I-p{GG#(xywp2N)lzE-olM_siwwG+_byPI>DzGYQuOFbHqSAa z=yC%{i?_dbYkxCAuDv;Vxdow>y{QnHM>GF@&a`uR8~et}68>|)hE#K{;S~tG{!B`h zmY>XA>MyU^Ljd^9g}eEFz&Agf9h>IDm!~GJ_Oy3bKrC?S!k7xvTNQl2?#4`{ zs`(5QEWh?e;^=#mcgu;gAN(72;&xg+EMGJcjvgKx?=1>vajO3m1oWm7y#k%5b9S)} zl?;xYa=lI7TTIb#4ktN8e00Az$n$1%>7DK^rU9I$uRL^fAWVy^W_D}8yAq7;(OX9wz&}fkNvG|$LLj&p z1Bk67w`{#5)HvKhOLf4O?Oig01`XyC{0l{cCm_2~#Soq#)mWZy#{b{?Spj@xwDk%szvm9gQBel;$ih5S<8E=Ovw z^oVttv4Lsbi2>S}CKkHv_?h=7y+~SoOa+XQekaATK>~R)Lq255Uv_0xKb{^eec9$x z_hLG0_OWk1V=iF-e1O@JVnt>g@y?=8xkq7~Ludwc09Oe99Y{f*g7E&;Up0gGtso)% zxrn3PxVMi+xGrV>QtQykE=VXoi}r3lpNV|W6T3?lN_zCOXK(vj%tI3f+xBQ!tEb=0nF1rM5~PI&Qp@&%$FD^rZK9Z-YW=J!LtB zcfUAr+x75<-st*N%-q)Q)LtYg<3o>ai+>E$0jP~%tHLG4XtcW^^hWMKMFp#wT+ksJ1;d9!e~ zX}+mm+;h@{I+w9cX2MB;m7TyS=39PDh`hRl?cz05{Rzyp7gyx8V!H( zU3v!gn)cE|W1q7x)FL>CBr49?h@eabu1f)@PTJ1JF=(^Fas0;c`m=xzy?k=pA}mA$Q^A+aA4Tt-E1efsZ}BMTqaY&TK=~ zVC_s@!A~$VRsr-OKfk#iOIqsvOoI_8jxAbGArib4JoP8BnK}?)%Y;m%`J~n{g}roY zvzMD$*%ITdxfe{vGw3I$CzuRw|1fifAv_uXCoEANhPAmkQj`(D*1&FQa(Mf2aOL|) z&cwCeVQc3Iik|w$5l&s9(b^6G6Y7z3Va+_J3I2Q5w|UQMNnSkHVxJ@!ATu$Ee|h+O zmFJUE-QOHEAVA7zHC};^4?V+EajiOU^&L;(=gn5$lZjNGzr3Q`$Gle^`Ra+Mf%e47 zUbj=aZ!|wnQrAa|I}a-m+c~jCUgwX6;nqdO3nUx~H>drRwYIR$m=VNvU`yWKd@~5H>{eyDEpk zJan#%ZN5NqvJ~FJ2)K zyF4J6Y{X@i2lzNJ#ww zC^Yp^X+*IGc;n>#KX_WJP1D+PZ|B?X+pAEY1@|LZg%ibe$jsH$?bGcqnK{@w*_|Fx z15wYP`b!J8?Md{$F_Q=Bb*z|DWpDgeN~UIw3E90v_uo>fy=|-e85yoByvxd(n2P0jf@3QTVSy;cAw@?BAUlI0^acGt0x(m7XWYoO8zzhDNqQIopkMEwn;%ez1FPd+WsQ~c`|)5lId|zwJcjH8Zq;#vkNIj+N3~Uv zC{wS+^KbE9pIJP^7Ko}%vs4Q;`YRV4n5PbB52a*RgOBP@-XuR7iL{u63>)Yf{^>3~zu zbZHJ{<&?&gH8m3sGwIn4z~BW4rn}&;=ts6|oA$X-{oK^Iur6GzE&(md3+4<1uixWG zF1V>|az^z<&`$hyDL0~FBZ}SubzNfgJQ8e3v=Q{9kuaAlBRZ~aio8$l7jc?sLK0V& zV8c9H%-mIeYBk?t$*?J@BfSH$?!!0ja@~}7jjv@EWVo(m1iimcxA2_I1M=L<_lAxt zywq%uQ?n@u!We7ob4N1-2K7hGZUYHDp!YyVA$`36aZyzAYNG7Yp=^Zp`=3X~u!~Ar zvaJX6ya>QFPm?*-(v>^moUd>{cyfwO=WN4^HGfc1inCX-|4oOH5Aou|Qri`Z$qDu2 z=!z*&g~PX&TCakN8^DO`jiqZqXfG%0j{ND7RQ?8P*;(hD|fn3C2eMMdOsISF*-BswWyt0U)i>@R7|G+&C8&-&d<@NL|i3&#c#wMv@T* zazb&?W+feJP^bVvw!`poxRNO)GFivWB#ClC;j{yC{3r8T(&vyWycSbz?|}ZD-`m$% z)1ON#QvUQS599}RG;gO}S}Q&1G1TgPSS{ro9-vxQMN(1>61!mK8WQZtB7d`(*T&}k6}6)*thrWelp`T8S(TqxoWX?&P>(4vpN|rn zLgb`a-`Pl{3HV&N1a%UA{$JF4db3dVaSGDca!)WEDgK|AR5>pdIya*X=S zEL&PAi8y|B+Oa_sU}a^LGnW7`QRjTXbRQ$Ggg8WQK9O-cE~Q8KFSGz}_9melZ^6~4 zq%)=Q=0wW6AcOoFu4zX$pP(&0{GrYJ;=FzvpXM>{{xoR}ah$>JD0A>xGjqwJx!ASU z*nAL3ipYzw5OeNz$#)_hD$TprJJtCk5A9k9#_@W8SG}^eJZMc>wz|l0d@z^n>_x*W zlWw>b8Z!sdJHT=}FaM9sv;Wi9F?}#NCz71pcP1S@%j*?!#u8Aj>Ml{a^=nse#q%x7OjLjfsEXrS0r@>Ct!x!|;IR8AoYK;a8CtW`)ljNaxO ze*%VCG^6M`of{|`K7@kDXQE+Z5a7N8ZvV-j|uKSV=)0xB$sAV8kQ<;VM zABUh&S6+UzW%)17aF^ONL#QI*TK+{F{f&Gz{Wh#g0hFaSx#ncimgVk(EsIf+bR-*h zNax1*4Nx)w$gnTcFX$hk`Z&xbL5{gD4q17Gc#0~Ev)iCzNgo79_P<9ki;9<4tGtqC zG9G6Bj}V~yD+Drv5XdAXs$4vrf+gj0j1G}T3nx$j|0NEXhzg5lB!8nT(UyP$J8m{r zO_o|zR}=yUqij{}ZdAu<+hn19N-|U+8*mLF|QT>heG zr8%asddrS`8%CrR6_w4WnF=FlbUpf?`zNEKI-37px<-a5HksVh%FD%pw`hQwv87Rsfm_1A0B_@nY5)KL diff --git a/resource/animation/character/hero01_move.aseprite b/resource/animation/character/hero01_move.aseprite index 2ef69b90b4b573df18404a3048c4c73c375c8877..b72231ff4269ada971552f9de6457eed0a5a1e04 100644 GIT binary patch delta 2267 zcmZp<$JD)!iJf~o1H*%*xf9tdnci}3Y}&{o%fx^JI2kfia#G`S^79Lr8AK-su!=~r zFmRwKVPIh>D$O(GWDuBK$0{i$$RLVE+E|Q1W%5Q=QE71o2~=rThOE-u0z*j#smTvn zrKF`9WUOK?_w5 zti@QHK?hZsl_3|Xhs98rL2vR}HYsC$1_Nvgj13t~(8Y5=ZZKsqoBWGSO4^*k3Y)yK zHG|7!eRgqXR|dDqp6rUu?hKxjbJ=B>y%@YF_pr;D_%QgQ>SJd}FUl{?OEL0e2u77* zVMxhLH4I@0oqUH~k~xeae6k^jn6hC6LnNv?9)`rsB6vVVF~kAYi8IGDBuw_^kYP?_ zNCxXOO<~BuuFo{SxTG{MlOYSFj>R&YA!qVlj*0c9K-H`YObq4>E)4(S=}Cw|jG4F(*{7jzC<&U$U!B@oi|_GI{HJ=-V-cRq&A7R|vamH~;ckL}wg`sWn;ymPx= zO|5EMCw0j|>!3hu@00)MXRxWU8mxV^PUxh&`sCfyX0)a3Vo1(b4s`@u%EI8xP;Y@` zD;t9l(AH!Q{`7j${}z{E5!eJa1~Z_; z5zZC^JA3Vgjl2g8I9vj^rA+WRzN<&5NjJJpJLXCFv(SWzGgs|8EvZwqJ6Yi>m)iez z_4juLM!uPO^{AT&KN|;g3*#Zt$<}PfF)#IwyZ(MxvHkb)8~;?Q829-XxH^HYlPQj;;p^ zNdYrq#hlWMy9Ey`@USI>damRXz2`lvvGqo~Vo{!?YL&x*jX$|%pE=K9X7F$Jm3p6{ z9=cGnGo5jzT5oEK(^^K|OD7#OotE=mO?)Hvq<;I}y3c+F9?{Pj|2z&XIkC7i`Dwu9 zx-X%ZnhVa&?AQ|L`mj`{V}~)e%FsH5jyk@*?#nV7KTn=wVZ3s?T76D$c@?ky&DB$Y6vj%n1@U0vlz_V1g_uo0PF7gB3Of#?}mW=;ApbH`p^cO#a0tCGE)If=%Ao zmBDYaKD#)xKSRJ|Pj*G-K!)JSx$H8`Aq=6Dd)Q?re`Oa|OfSkW%}X(gV2DLEf`uU^ zGu1GTA%5~5c1h+0hQ!H+9Ae6bNes!T>UbCuGmGFpPhrRasuO3UNJ)nNF9r1DMQ)hy&MxK^Jj-{?sFAqWIQ%`f}nW47(>OJ(u>|) ztp+@-7x+%S-mtkW-8`G)X8-S^4+YlGlCxd+cqqt8Df^y0{8G6`|Cdl;g7POFhonOb zCQ7?7sT56g$xmRfyu><*_n1l9r}f6^v)<3Ww19_cswV5_34EWgdKv1qRBEV5r&Sx6 zT~7?I;#fPWH0OQj>tK<(-*MSj4NiR#*z(EzV%K&Vz2n~7)>dr`&1t>HoOQfbe52Fr siQDc8Z73=EzfyRb+d~%SuA(pTlk>RM;eMFhFL;`9mAcif`FuSmvl&Xw@P<+i*$FrIrrZ8z3+Q} z9Ka)IX7&f2_~wtK zQdX34r`M%yMfuguq+w~_jk|

8_1m_lIDtw=XA5N8(e#Lr}* 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 literal 18286 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 bbj1G$>0NTlh~2Fy00000NkvXXu0mjf?(G`( diff --git a/scene/level/level01_front_alley.tscn b/scene/level/level01_front_alley.tscn index 9b7917f..8380e00 100644 --- a/scene/level/level01_front_alley.tscn +++ b/scene/level/level01_front_alley.tscn @@ -26,6 +26,6 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0.4) mesh_library = ExtResource("2_q76ck") cell_size = Vector3(0.64, 0.64, 0.64) data = { -"cells": PackedInt32Array(19, 10, 0, 18, 10, 0, 17, 10, 0, 16, 10, 0, 15, 10, 917504, 14, 10, 917504, 13, 10, 917504, 12, 10, 917504, 11, 10, 917504, 8, 10, 917504, 7, 10, 917504, 6, 10, 0, 5, 10, 0, 4, 10, 0, 3, 10, 0, 2, 10, 0, 1, 10, 0, 0, 10, 0, 0, 65535, 917504, 1, 65535, 917504, 2, 65535, 917504, 3, 65535, 917504, 4, 65535, 917504, 5, 65535, 917504, 6, 65535, 917504, 7, 65535, 917504, 8, 65535, 917504, 9, 65535, 917504, 12, 65535, 917504, 13, 65535, 917504, 14, 65535, 917504, 15, 65535, 917504, 16, 65535, 917504, 17, 65535, 917504, 18, 65535, 917504, 19, 65535, 917504, 10, 65535, 917504, 11, 65535, 917504, 20, 65535, 917504, 21, 65535, 917504, 22, 65535, 917504, 23, 65535, 917504, 24, 65535, 917504, 25, 65535, 917504, 34, 65535, 1245184, 35, 65535, 917504, 36, 65535, 917504, 37, 65535, 917504, 38, 65535, 917504, 39, 65535, 917504, 39, 10, 917504, 38, 10, 917504, 37, 10, 917504, 36, 10, 917504, 35, 10, 917504, 34, 10, 917504, 29, 10, 917504, 28, 10, 917504, 27, 10, 917504, 26, 10, 917504, 25, 10, 917504, 24, 10, 917504, 23, 10, 917504, 22, 10, 917504, 21, 10, 917504, 20, 10, 917504, 9, 10, 917504, 10, 10, 917504, 40, 65535, 1245184, 41, 65535, 1245184, 42, 65535, 1245184, 43, 65535, 1245184, 44, 65535, 1245184, 45, 65535, 1245184, 46, 65535, 1245184, 47, 65535, 1245184, 48, 65535, 1245184, 59, 65535, 1245184, 58, 65535, 1245184, 57, 65535, 1245184, 56, 65535, 1245184, 55, 65535, 1245184, 54, 65535, 1245184, 53, 65535, 1245184, 52, 65535, 1245184, 51, 65535, 1245184, 50, 65535, 1245184, 49, 65535, 1245184, 59, 0, 1245184, 59, 1, 1245184, 59, 2, 1245184, 59, 3, 1245184, 59, 6, 1245184, 59, 7, 1245184, 59, 8, 1245184, 59, 9, 1245184, 59, 10, 1245184, 58, 10, 1245184, 57, 10, 1245184, 56, 10, 1245184, 55, 10, 1245184, 54, 10, 1245184, 53, 10, 1245184, 52, 10, 1245184, 51, 10, 1245184, 50, 10, 1245184, 49, 10, 1245184, 48, 10, 1245184, 47, 10, 1245184, 46, 10, 1245184, 45, 10, 1245184, 44, 10, 1245184, 43, 10, 1245184, 42, 10, 1245184, 41, 10, 1245184, 40, 10, 1245184, 0, 0, 1245184, 0, 1, 1245184, 0, 2, 1245184, 0, 3, 1245184, 0, 6, 1245184, 0, 7, 1245184, 0, 8, 1245184, 0, 9, 1245184, 26, 65535, 1245184, 27, 65535, 1245184, 28, 65535, 1245184, 33, 65535, 1245184, 32, 65535, 1245184) +"cells": PackedInt32Array(19, 10, 0, 18, 10, 0, 17, 10, 0, 16, 10, 0, 15, 10, 917504, 14, 10, 917504, 13, 10, 917504, 12, 10, 917504, 11, 10, 917504, 8, 10, 917504, 7, 10, 917504, 6, 10, 0, 5, 10, 0, 4, 10, 0, 3, 10, 0, 2, 10, 0, 1, 10, 0, 0, 10, 0, 0, 65535, 917504, 1, 65535, 917504, 2, 65535, 917504, 3, 65535, 917504, 4, 65535, 917504, 5, 65535, 917504, 6, 65535, 917504, 7, 65535, 917504, 8, 65535, 917504, 9, 65535, 917504, 12, 65535, 917504, 13, 65535, 917504, 14, 65535, 917504, 15, 65535, 917504, 16, 65535, 917504, 17, 65535, 917504, 18, 65535, 917504, 19, 65535, 917504, 10, 65535, 917504, 11, 65535, 917504, 20, 65535, 917504, 21, 65535, 917504, 22, 65535, 917504, 23, 65535, 917504, 24, 65535, 917504, 25, 65535, 917504, 34, 65535, 1245184, 35, 65535, 917504, 36, 65535, 917504, 37, 65535, 917504, 38, 65535, 917504, 39, 65535, 917504, 39, 10, 917504, 38, 10, 917504, 37, 10, 917504, 36, 10, 917504, 35, 10, 917504, 34, 10, 917504, 29, 10, 917504, 28, 10, 917504, 27, 10, 917504, 26, 10, 917504, 25, 10, 917504, 24, 10, 917504, 23, 10, 917504, 22, 10, 917504, 21, 10, 917504, 20, 10, 917504, 9, 10, 917504, 10, 10, 917504, 40, 65535, 1245184, 41, 65535, 1245184, 42, 65535, 1245184, 43, 65535, 1245184, 44, 65535, 1245184, 45, 65535, 1245184, 46, 65535, 1245184, 47, 65535, 1245184, 48, 65535, 1245184, 59, 65535, 1245184, 58, 65535, 1245184, 57, 65535, 1245184, 56, 65535, 1245184, 55, 65535, 1245184, 54, 65535, 1245184, 53, 65535, 1245184, 52, 65535, 1245184, 51, 65535, 1245184, 50, 65535, 1245184, 49, 65535, 1245184, 59, 0, 1245184, 59, 1, 1245184, 59, 2, 1245184, 59, 3, 1245184, 59, 6, 1245184, 59, 7, 1245184, 59, 8, 1245184, 59, 9, 1245184, 59, 10, 1245184, 58, 10, 1245184, 57, 10, 1245184, 56, 10, 1245184, 55, 10, 1245184, 54, 10, 1245184, 53, 10, 1245184, 52, 10, 1245184, 51, 10, 1245184, 50, 10, 1245184, 49, 10, 1245184, 48, 10, 1245184, 47, 10, 1245184, 46, 10, 1245184, 45, 10, 1245184, 44, 10, 1245184, 43, 10, 1245184, 42, 10, 1245184, 41, 10, 1245184, 40, 10, 1245184, 0, 0, 1245184, 0, 1, 1245184, 0, 2, 1245184, 0, 3, 1245184, 0, 6, 1245184, 0, 7, 1245184, 0, 8, 1245184, 0, 9, 1245184, 26, 65535, 1245184, 27, 65535, 1245184, 33, 65535, 1245184, 32, 65535, 1245184) } metadata/_editor_floor_ = Vector3(0, 0, 0) diff --git a/scene/ui/hud_screen.tscn b/scene/ui/hud_screen.tscn index 9e1e92d..5b00be9 100644 --- a/scene/ui/hud_screen.tscn +++ b/scene/ui/hud_screen.tscn @@ -1,8 +1,45 @@ -[gd_scene load_steps=4 format=3 uid="uid://126wph4owvoy"] +[gd_scene load_steps=8 format=3 uid="uid://126wph4owvoy"] [ext_resource type="Texture2D" uid="uid://cwhu1ec03t3c8" path="res://resource/ui/hud/headbar_hp_empty.png" id="1_flgf6"] [ext_resource type="Texture2D" uid="uid://b4ly1exl0owck" path="res://resource/ui/hud/headbar_hp.png" id="2_sktwb"] -[ext_resource type="Script" path="res://script/ui/headbar/headbar_page.gd" id="3_fb4si"] +[ext_resource type="Script" path="res://script/ui/hud/headbar_page.gd" id="3_6chl0"] +[ext_resource type="Script" path="res://script/ui/hud/loading_page.gd" id="4_jqajt"] + +[sub_resource type="Animation" id="Animation_x6v17"] +resource_name = "start" +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("ColorRect:color") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0, 0.2), +"transitions": PackedFloat32Array(1, 1), +"update": 0, +"values": [Color(0, 0, 0, 0), Color(0, 0, 0, 1)] +} + +[sub_resource type="Animation" id="Animation_4kxot"] +resource_name = "end" +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("ColorRect:color") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0, 0.3), +"transitions": PackedFloat32Array(1, 1), +"update": 0, +"values": [Color(0, 0, 0, 1), Color(0, 0, 0, 0)] +} + +[sub_resource type="AnimationLibrary" id="AnimationLibrary_fofuj"] +_data = { +"end": SubResource("Animation_4kxot"), +"start": SubResource("Animation_x6v17") +} [node name="HudScreen" type="CanvasLayer"] @@ -38,4 +75,23 @@ layout_mode = 3 anchors_preset = 0 offset_right = 40.0 offset_bottom = 40.0 -script = ExtResource("3_fb4si") +script = ExtResource("3_6chl0") + +[node name="LoadingPage" type="Control" parent="."] +layout_mode = 3 +anchors_preset = 0 +offset_right = 40.0 +offset_bottom = 40.0 +script = ExtResource("4_jqajt") + +[node name="ColorRect" type="ColorRect" parent="LoadingPage"] +layout_mode = 0 +offset_right = 640.0 +offset_bottom = 360.0 +color = Color(0, 0, 0, 1) + +[node name="AnimationPlayer" type="AnimationPlayer" parent="LoadingPage"] +unique_name_in_owner = true +libraries = { +"": SubResource("AnimationLibrary_fofuj") +} diff --git a/scene/ui/item/headbar.tscn b/scene/ui/item/headbar.tscn index 4c406d9..8bf214d 100644 --- a/scene/ui/item/headbar.tscn +++ b/scene/ui/item/headbar.tscn @@ -1,6 +1,6 @@ [gd_scene load_steps=4 format=3 uid="uid://dy0u26ba7dle"] -[ext_resource type="Script" path="res://script/ui/headbar/headbar.gd" id="1_j1xlt"] +[ext_resource type="Script" path="res://script/ui/hud/headbar.gd" id="1_k0rtd"] [ext_resource type="Texture2D" uid="uid://cwhu1ec03t3c8" path="res://resource/ui/hud/headbar_hp_empty.png" id="2_g5t31"] [ext_resource type="Texture2D" uid="uid://b4ly1exl0owck" path="res://resource/ui/hud/headbar_hp.png" id="3_vh1p5"] @@ -11,7 +11,7 @@ offset_left = 256.0 offset_top = 88.0 offset_right = 256.0 offset_bottom = 88.0 -script = ExtResource("1_j1xlt") +script = ExtResource("1_k0rtd") [node name="HpBar" type="TextureProgressBar" parent="."] unique_name_in_owner = true diff --git a/scene/ui/item/hit_text.tscn b/scene/ui/item/hit_text.tscn index ef58757..216d32f 100644 --- a/scene/ui/item/hit_text.tscn +++ b/scene/ui/item/hit_text.tscn @@ -1,6 +1,6 @@ [gd_scene load_steps=10 format=3 uid="uid://cxyly5ithpv5i"] -[ext_resource type="Script" path="res://script/ui/headbar/hit_text.gd" id="1_re03i"] +[ext_resource type="Script" path="res://script/ui/hud/hit_text.gd" id="1_c1sms"] [sub_resource type="Animation" id="Animation_b5roo"] length = 0.001 @@ -218,7 +218,7 @@ offset_bottom = 15.0 grow_horizontal = 2 grow_vertical = 2 pivot_offset = Vector2(20, 20) -script = ExtResource("1_re03i") +script = ExtResource("1_c1sms") [node name="Label" type="Label" parent="."] unique_name_in_owner = true @@ -229,9 +229,10 @@ anchor_left = 0.5 anchor_top = 0.5 anchor_right = 0.5 anchor_bottom = 0.5 -offset_top = -20.0 -offset_right = 59.9996 -offset_bottom = 10.0 +offset_left = 60.0 +offset_top = 10.0 +offset_right = 120.0 +offset_bottom = 40.0 grow_horizontal = 2 grow_vertical = 2 scale = Vector2(0.5, 0.5) diff --git a/script/_global/global.gd b/script/_global/global.gd index ea22df7..85f4f31 100644 --- a/script/_global/global.gd +++ b/script/_global/global.gd @@ -1,5 +1,8 @@ extends Node3D -var camera_mgr:CameraManager -var character_mgr:CharacterManager -var level_mgr:LevelManager +var camera_mgr : CameraManager +var character_mgr : CharacterManager +var level_mgr : LevelManager + +#全局状态 +var is_level_loading : bool diff --git a/script/_global/setting.gd b/script/_global/setting.gd index 40a53ba..820609e 100644 --- a/script/_global/setting.gd +++ b/script/_global/setting.gd @@ -12,3 +12,4 @@ const drag_air : float = 5 #地图 const starting_level : String = "level01_forecourt.tscn" +const level_loading_min_time : float = 0.2 diff --git a/script/character/buff.gd b/script/character/buff.gd index 809d94b..4df401f 100644 --- a/script/character/buff.gd +++ b/script/character/buff.gd @@ -126,6 +126,8 @@ func on_update_stun_recover(rate): remove_buff("stun_recover") #表现 +func on_start_freeze(rate):status.is_pause = true +func on_end_freeze(rate):status.is_pause = false func on_second_pause(rate):status.is_pause = true func on_end_pause(rate):status.is_pause = false diff --git a/script/character/player/player_info.gd b/script/character/player/player_info.gd index 0cf51cc..5888ab6 100644 --- a/script/character/player/player_info.gd +++ b/script/character/player/player_info.gd @@ -3,4 +3,6 @@ extends Node3D @onready var character = (get_owner() as Character) func _process(delta): + if Global.is_level_loading: + return MetSys.set_player_position(character.pos2D()) diff --git a/script/manager/character_manager.gd b/script/manager/character_manager.gd index 22e6d28..1025f03 100644 --- a/script/manager/character_manager.gd +++ b/script/manager/character_manager.gd @@ -7,7 +7,21 @@ var player_id : int func _ready(): Global.character_mgr = self + SignalManager.level_loading_start.connect(on_level_loading_start) + SignalManager.level_loading_end.connect(on_level_loading_end) +func on_level_loading_start(): + var player = get_player() + if player: + player.add_buff("freeze",-1) + for enemy in get_enemy_list(player_id): + SignalManager.character_die.emit(enemy.id()) + destroy_character(enemy.id()) + +func on_level_loading_end(): + var player = get_player() + if player:player.remove_buff("freeze") + func create_character(cfg:CharacterCfg,team:Enum.ETeam,pos:Vector3): var characterNode:Node match cfg.type: diff --git a/script/manager/level_manager.gd b/script/manager/level_manager.gd index 6374107..40779b4 100644 --- a/script/manager/level_manager.gd +++ b/script/manager/level_manager.gd @@ -3,6 +3,8 @@ extends Node3D class_name LevelManager var level: Node3D +var level_path : String +var load_time : float func _ready(): Global.level_mgr = self @@ -12,14 +14,45 @@ func init(): goto_level(MetSys.get_full_room_path(Setting.starting_level)) MetSys.room_changed.connect(on_room_changed) -func goto_level(level_path: String): +func _process(delta): + if not Global.is_level_loading: + return + if load_time > 0: + load_time -= delta + return + var status = ResourceLoader.load_threaded_get_status(level_path) + match status: + ResourceLoader.ThreadLoadStatus.THREAD_LOAD_IN_PROGRESS:return + ResourceLoader.ThreadLoadStatus.THREAD_LOAD_LOADED:pass + _:print("关卡加载错误");return + goto_level_end() + +func on_room_changed(target_level: String): + goto_level(MetSys.get_full_room_path(target_level)) + +func goto_level(new_level_path: String): + if Global.is_level_loading: + print("连续进入关卡:",new_level_path) + return + print("goto_level:",new_level_path) + level_path = new_level_path + ResourceLoader.load_threaded_request(level_path) + Global.is_level_loading = true + if level: + load_time = Setting.level_loading_min_time + SignalManager.level_loading_start.emit() + else: + load_time = 0 + goto_level_end() + +func goto_level_end(): var prev_level_position := Vector2i.MAX if level: prev_level_position = MetSys.get_current_room_instance().get_base_coords() level.queue_free() level = null - - level = load(level_path).instantiate() + + level = ResourceLoader.load_threaded_get(level_path).instantiate() add_child(level) MetSys.current_layer = MetSys.get_current_room_instance().get_layer() var level_size = MetSys.get_current_room_instance().get_size() @@ -32,8 +65,7 @@ func goto_level(level_path: String): var pos_change_xz = Vector2(level_position_now - prev_level_position) * MetSys.settings.in_game_cell_size pos_pre.x -= pos_change_xz.x pos_pre.z -= pos_change_xz.y - print(player.pos(),pos_pre) player.set_pos(pos_pre) - -func on_room_changed(target_level: String): - goto_level(MetSys.get_full_room_path(target_level)) + + Global.is_level_loading = false + SignalManager.level_loading_end.emit() diff --git a/script/manager/signal_manager.gd b/script/manager/signal_manager.gd index c03f9e8..3c2e858 100644 --- a/script/manager/signal_manager.gd +++ b/script/manager/signal_manager.gd @@ -20,3 +20,5 @@ signal character_hit_damage #level signal level_size_change +signal level_loading_start +signal level_loading_end diff --git a/script/ui/headbar/headbar.gd b/script/ui/hud/headbar.gd similarity index 100% rename from script/ui/headbar/headbar.gd rename to script/ui/hud/headbar.gd diff --git a/script/ui/headbar/headbar_page.gd b/script/ui/hud/headbar_page.gd similarity index 100% rename from script/ui/headbar/headbar_page.gd rename to script/ui/hud/headbar_page.gd diff --git a/script/ui/headbar/hit_text.gd b/script/ui/hud/hit_text.gd similarity index 100% rename from script/ui/headbar/hit_text.gd rename to script/ui/hud/hit_text.gd diff --git a/script/ui/hud/loading_page.gd b/script/ui/hud/loading_page.gd new file mode 100644 index 0000000..5f72347 --- /dev/null +++ b/script/ui/hud/loading_page.gd @@ -0,0 +1,14 @@ +extends Control + +@onready var animation = %AnimationPlayer as AnimationPlayer + +func _ready(): + SignalManager.level_loading_start.connect(on_level_loading_start) + SignalManager.level_loading_end.connect(on_level_loading_end) + +func on_level_loading_start(): + animation.play("start") + +func on_level_loading_end(): + animation.play("end") +