From 071009d59a08ea1a5318784e6d432a9c1db8104f Mon Sep 17 00:00:00 2001 From: chendian <-> Date: Tue, 21 Nov 2023 03:10:09 +0800 Subject: [PATCH] =?UTF-8?q?=E9=94=81=E5=AE=9A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- render/texture/shape/lock.png | Bin 0 -> 1021 bytes render/texture/shape/lock.png.import | 34 +++++++++++++++ resource/ui/hud/_hud_design.png | Bin 1409 -> 2066 bytes scene/character/player.tscn | 16 +++++--- scene/ui/hud_screen.tscn | 50 ++++++++++++++++++++--- script/character/player/combo.gd | 3 +- script/character/player/player_action.gd | 15 +++++++ script/character/player/player_info.gd | 9 ++++ script/ui/hud/hud_page.gd | 10 +++++ script/ui/hud/loading_page.gd | 2 +- script/ui/hud/lock.gd | 22 ++++++++++ 11 files changed, 148 insertions(+), 13 deletions(-) create mode 100644 render/texture/shape/lock.png create mode 100644 render/texture/shape/lock.png.import create mode 100644 script/character/player/player_action.gd create mode 100644 script/ui/hud/hud_page.gd create mode 100644 script/ui/hud/lock.gd diff --git a/render/texture/shape/lock.png b/render/texture/shape/lock.png new file mode 100644 index 0000000000000000000000000000000000000000..7cb1fd38896c3805376015a5e5e137bad0f5ca47 GIT binary patch literal 1021 zcmVPx&w@E}nRCt{2TiaFRFc7`74L}E^gSZ3S0dx>L2pv!YbP%=z*b0&klC1zbNVWmr z{qTs4g?#*o?AQ+X9FBu6$@91xy~e-~E*sLvOGwTEBmic5DX4)2ouQcUpe$3hKKS-D*_>BHkKeXvV^v4_K)qYb2$IiD+h`4vSJn$^h)R!lA%}H> z%G9kKBKEB8+MDs(2J*YG~N zbt8iL1Z*GG2s{o~`ytW33>v4L5gLy$eq&1$?FX;CgBrnMc}gSBlINdwH3ai%d3)xX zvHmm~oe{44W?8mwTG3i>a1p;QG=Mi}v02yz7c*l5^R)@HEc>WiVbO{<1BU6&)hw8j z_Z@1pzzrX@=`tc1#}-C}UtYNf01%P)z69$FMyH3;LS%bX`a2j0f30V1 z7f1m>M0S3~sle!#x_j0DGrdmM066M4b2t1T2;|$>Q^m%=@nry#ss2p-LK8v)6m&hp z+vptK>aPlBeG{JL^7}E?WQ<^yS8PLtLKwXf0?Lyl-Sbcov`D)ZuNS1XN_l5{2W^jrOQQW(8Pm58^J2CGDpi5v^6|R4P8P_)*hZ6%106;p3{H5w!h<*X{QD&XXx0?Xx)*=28Ey^H0^Nw zZ0@C`nMWKyn@dQh-Y0kmt@|P(|6<7=9qQq?fS23it&Ab3qVrE@neQni0A?g-03ad> r3`-OTk~@9=iR0(9f4Y|O2bYZh@oLcdyQ_jb00000NkvXXu0mjfXI|ZG literal 0 HcmV?d00001 diff --git a/render/texture/shape/lock.png.import b/render/texture/shape/lock.png.import new file mode 100644 index 0000000..e29721f --- /dev/null +++ b/render/texture/shape/lock.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dx2vp753yvh4y" +path="res://.godot/imported/lock.png-c9af2b7e378d675c56581df22939f427.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://render/texture/shape/lock.png" +dest_files=["res://.godot/imported/lock.png-c9af2b7e378d675c56581df22939f427.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=0 +compress/normal_map=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=false +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=0 diff --git a/resource/ui/hud/_hud_design.png b/resource/ui/hud/_hud_design.png index 9d0a7e8dbb926d5286863ce68b1788854fff7097..7eb895bc5c33738cf5ed7e2f7375b436bc2758e2 100644 GIT binary patch delta 1370 zcmXw&c{JNu6vuBiqOn9Rad2w1htyKlMMLKxYUyw+6@o#VsBT0o)1Fot5^Ee?EUnSn z%XAzK8q3()qEXB+mMUpgP&H_akrtIo8}l>g%=_!z_ujqtdq3avk_frPY|HNz|8jM5 z@Qp26o^<$$??O~~B-{Sv{M>uY0aUI}_qjat0&B-zmAf!l&8(*z;hXEoCXR z`Ji)R$eh80Qw)HmC0ZL-Y1UFqb2B;l(7i+hy;)q}!|ROd z{VIQ1+P&l4YuhqH5)cDY3F~L1{k!Z*@(&!z%Jf!%5|-QP#`u-g#W2Q-j^nZ17PnJn z{%IZV`06Yo9uDNSS#RzAdiEGIA(aXlmCw?y`bhgzJ2&x2wf=F^T(j{1MC-xF->vMF z*S8XXa2FcDvlx-{)t8d|fi!9e2AHRAyA1Q*#f%n82=I7BtR1b&p=RxwjXRCggxLF4 zJZh@_j2gr)j|#F=#?{%(b_Iip4uBV#*iM;jQrCfC2e4SYtEefx(`uq!gLBblbG5r1 z1=34uKB1eB$&&ZqMp^&7s#=Nvxp>V6fK{!Mbg|bx!Rx5S-%1>S_*gCULLy~-<9$mu z8R5DVW@YitBf%Ki9)8;$UMf)pL4~DPU1Gvf>-$k&^7f_Gg(?Pc`^+Oy7!cfwHVb56 zO6in_7&INtN!DH2Pjky3!2#%Rd*NnsAK`8EMG?xv5Gy}@n4XOX&|TA%=OPe?8>7rP zerQgeqAE0=L!P%!@1K)x)%Om?KOqYqX(&KJla9Q8%8}_$Cct4fUD_X~nlxFo7s)h8 z>!^N7eAVrW29F6%dHpU&<|>(khr`P?lKgdTbfKLM((_SjM+A>}XQD54$bW`_g*yV4 zw0{bpM88o;IH?bvsg6QMlOZ;dPmaSY2kC4dbTK}sSZ?@wY1?Ac&36D(Xfm@uNF7aH ztO_xbG;dGld*R4+JB6n*S@a=Zmk|xPIQ1qj-+)5;jY9;kl1~lY%?>;AtfiIc4B#FR zUPCKaaX&OWpGg9+4Dn#)9ny24SVejQ7RtZ4BB9GuE6RW2?(vbpxj)8QFU-zgHUuHHx``rD9w5(B4jYLM5gg}_w?9eaV?e#WsNUVg8q~=*QYxwae?Yu$%&eD!E?-5 zHrKtQfof9NCAt>F%I6K0mKa++S=V*WC#!(wl{nci5zf*EoH7U+%2kRgZ?Zg7ZX zvF`epr*#l=%QEih7&|| z!&EL97qI;-+utWeLIVjSHvaV-;|P;c0yclxy2JGc0DvUl7kuwS+n!Gm5v4Q{5ucA< z*tX}(*f%Ss`55~*006dNsQ^5*?fFznbBu_%K91;#z_vYK>gxai7;lNG*gx@Cb=E#R zYnN^$Chv2TOhN&G>t6Z{zRV&mYNK-KOj3Dgpsu$1+2pH~xRB zo72I6r-R~edSAbOn*;*Dj%7u_VEk1gFpmfXfc?q{fT!ZG5`lR{AOP&s+z0=c;;#~c zc|;%p?9ZGB{ z{s4e+R`oS7ec|KuF95)6W(kSzWNxZ2f;RO60GP&XLG^9~J`;a^Q@>K0kGa=}_6-2A z7PDOiTtljq=2%K|tU*^FKlq)e;;--j{*u;3AONs>vj@$ylfaSjcS=|ne*i|nCZt5o z{~}QQ0RZGl3!6s~*m++30RSXOjhmrKp!fp-$dMj6w-Fd|cMAA!Pp)aAG1*cNCJ~!0=*Zous<6{Uf^t9M2P?Z002ovPDHLkV1j!j1YZCE diff --git a/scene/character/player.tscn b/scene/character/player.tscn index ae8e809..8e88501 100644 --- a/scene/character/player.tscn +++ b/scene/character/player.tscn @@ -1,9 +1,10 @@ -[gd_scene load_steps=5 format=3 uid="uid://ba7pkdaq5y8nl"] +[gd_scene load_steps=6 format=3 uid="uid://ba7pkdaq5y8nl"] [ext_resource type="PackedScene" uid="uid://ksxwg0alt2us" path="res://scene/character/character.tscn" id="1_pot50"] [ext_resource type="Script" path="res://script/character/player/combo.gd" id="2_i44w8"] [ext_resource type="Script" path="res://script/character/player/player_input.gd" id="3_n07go"] [ext_resource type="Script" path="res://script/character/player/player_info.gd" id="4_mi1lk"] +[ext_resource type="Script" path="res://script/character/player/player_action.gd" id="5_gum7v"] [node name="Character" instance=ExtResource("1_pot50")] @@ -11,13 +12,16 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.693056, 0) animation = &"long_air_attack01" -[node name="PlayerInput" type="Node3D" parent="." index="8"] +[node name="Combo" type="Node3D" parent="." index="8"] unique_name_in_owner = true -script = ExtResource("3_n07go") +script = ExtResource("2_i44w8") -[node name="Combo" type="Node3D" parent="." index="9"] +[node name="PlayerInput" type="Node3D" parent="." index="9"] unique_name_in_owner = true -script = ExtResource("2_i44w8") +script = ExtResource("3_n07go") + +[node name="PlayerAction" type="Node3D" parent="." index="10"] +script = ExtResource("5_gum7v") -[node name="PlayerInfo" type="Node3D" parent="." index="10"] +[node name="PlayerInfo" type="Node3D" parent="." index="11"] script = ExtResource("4_mi1lk") diff --git a/scene/ui/hud_screen.tscn b/scene/ui/hud_screen.tscn index 0fc3703..7730002 100644 --- a/scene/ui/hud_screen.tscn +++ b/scene/ui/hud_screen.tscn @@ -1,10 +1,34 @@ -[gd_scene load_steps=9 format=3 uid="uid://126wph4owvoy"] +[gd_scene load_steps=14 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="Script" path="res://script/ui/hud/hud_page.gd" id="1_t7dgf"] [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/hud/headbar_page.gd" id="3_6chl0"] [ext_resource type="Script" path="res://script/ui/hud/loading_page.gd" id="4_jqajt"] [ext_resource type="Texture2D" uid="uid://xogtpwyb862f" path="res://resource/ui/hud/_hud_design.png" id="5_qqrb8"] +[ext_resource type="Script" path="res://script/ui/hud/lock.gd" id="5_usy8x"] +[ext_resource type="Texture2D" uid="uid://dx2vp753yvh4y" path="res://render/texture/shape/lock.png" id="6_hmslt"] + +[sub_resource type="Animation" id="Animation_ikdwl"] +resource_name = "rotate" +loop_mode = 1 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("Lock:rotation") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0, 1), +"transitions": PackedFloat32Array(1, 1), +"update": 0, +"values": [0.0, 6.28319] +} + +[sub_resource type="AnimationLibrary" id="AnimationLibrary_wbtxq"] +_data = { +"rotate": SubResource("Animation_ikdwl") +} [sub_resource type="Animation" id="Animation_4kxot"] resource_name = "end" @@ -49,6 +73,11 @@ layout_mode = 3 anchors_preset = 0 offset_right = 40.0 offset_bottom = 40.0 +script = ExtResource("1_t7dgf") + +[node name="HudDesign" type="Sprite2D" parent="HudPage"] +position = Vector2(320, 180) +texture = ExtResource("5_qqrb8") [node name="Player" type="Control" parent="HudPage"] anchors_preset = 0 @@ -72,9 +101,21 @@ stretch_margin_bottom = 10 texture_under = ExtResource("1_flgf6") texture_progress = ExtResource("2_sktwb") -[node name="HudDesign" type="Sprite2D" parent="HudPage/Player"] -position = Vector2(291, 151) -texture = ExtResource("5_qqrb8") +[node name="LockItem" type="Control" parent="HudPage"] +anchors_preset = 0 +offset_right = 40.0 +offset_bottom = 40.0 +scale = Vector2(0.5, 0.5) +script = ExtResource("5_usy8x") + +[node name="Lock" type="Sprite2D" parent="HudPage/LockItem"] +position = Vector2(656, 320) +texture = ExtResource("6_hmslt") + +[node name="AnimationPlayer" type="AnimationPlayer" parent="HudPage/LockItem"] +libraries = { +"": SubResource("AnimationLibrary_wbtxq") +} [node name="HeadBarPage" type="Control" parent="."] layout_mode = 3 @@ -98,7 +139,6 @@ 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/script/character/player/combo.gd b/script/character/player/combo.gd index c89a5ea..50c2d9d 100644 --- a/script/character/player/combo.gd +++ b/script/character/player/combo.gd @@ -1,6 +1,7 @@ extends Node3D class_name Combo +@onready var character = (get_owner() as Character) @onready var status = (%Status as Status) @onready var skill = (%Skill as Skill) @onready var move = (%Move as Move) @@ -102,4 +103,4 @@ func add_skill(action:String,skillCfg:PlayerSkillCfg): if not action in skill_map: skill_map[action] = [] skill_map[action].append(skillCfg) - + diff --git a/script/character/player/player_action.gd b/script/character/player/player_action.gd new file mode 100644 index 0000000..8f7b4b0 --- /dev/null +++ b/script/character/player/player_action.gd @@ -0,0 +1,15 @@ +extends Node3D +class_name PlayerAction + +@onready var character = (get_owner() as Character) +@onready var status = (%Status as Status) + +func lock(is_lock:bool): + var has_target = status.target != 0 + if is_lock: + var enemy_list = Global.character_mgr.get_enemy_list(character.id()) + if enemy_list: + pass + else: + status.set_status("target",0) + diff --git a/script/character/player/player_info.gd b/script/character/player/player_info.gd index f915f78..c45fb4c 100644 --- a/script/character/player/player_info.gd +++ b/script/character/player/player_info.gd @@ -8,3 +8,12 @@ func _process(delta): if Global.is_level_loading_contorl: return MetSys.set_player_position(character.pos2D()) + +func lock(is_lock:bool): + var has_target = status.target != 0 + if is_lock: + var enemy_list = Global.character_mgr.get_enemy_list(character.id()) + if enemy_list + else: + status.set_status("target",0) + diff --git a/script/ui/hud/hud_page.gd b/script/ui/hud/hud_page.gd new file mode 100644 index 0000000..2893879 --- /dev/null +++ b/script/ui/hud/hud_page.gd @@ -0,0 +1,10 @@ +extends Control + + +func _ready(): + pass # Replace with function body. + + +# Called every frame. 'delta' is the elapsed time since the previous frame. +func _process(delta): + pass diff --git a/script/ui/hud/loading_page.gd b/script/ui/hud/loading_page.gd index 5f72347..65506af 100644 --- a/script/ui/hud/loading_page.gd +++ b/script/ui/hud/loading_page.gd @@ -1,6 +1,6 @@ extends Control -@onready var animation = %AnimationPlayer as AnimationPlayer +@onready var animation = $AnimationPlayer as AnimationPlayer func _ready(): SignalManager.level_loading_start.connect(on_level_loading_start) diff --git a/script/ui/hud/lock.gd b/script/ui/hud/lock.gd new file mode 100644 index 0000000..f85e8da --- /dev/null +++ b/script/ui/hud/lock.gd @@ -0,0 +1,22 @@ +extends Control +class_name LockItem + +@onready var animation = $AnimationPlayer as AnimationPlayer +@onready var camera: CameraManager = Global.camera_mgr + +var target_id : int + +func _ready(): + SignalManager.character_ui_pos_changed.connect(on_character_ui_pos_changed) + animation.play("rotate") + +func on_level_loading_start(): + animation.play("start") + +func on_level_loading_end(): + animation.play("end") + +func on_character_ui_pos_changed(id:int,pos:Vector3): + if id != target_id: + return + position = camera.get_screen_pos(pos)