diff --git a/render/texture/shape/lock.png b/render/texture/shape/lock.png new file mode 100644 index 0000000..7cb1fd3 Binary files /dev/null and b/render/texture/shape/lock.png differ 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 9d0a7e8..7eb895b 100644 Binary files a/resource/ui/hud/_hud_design.png and b/resource/ui/hud/_hud_design.png differ 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)