master
chendian 2 years ago
parent 071009d59a
commit 2ac3292e49

@ -139,6 +139,11 @@ flash={
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194325,"key_label":0,"unicode":0,"echo":false,"script":null) "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194325,"key_label":0,"unicode":0,"echo":false,"script":null)
] ]
} }
lock={
"deadzone": 0.5,
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":76,"key_label":0,"unicode":108,"echo":false,"script":null)
]
}
[memory] [memory]

File diff suppressed because one or more lines are too long

@ -21,6 +21,7 @@ unique_name_in_owner = true
script = ExtResource("3_n07go") script = ExtResource("3_n07go")
[node name="PlayerAction" type="Node3D" parent="." index="10"] [node name="PlayerAction" type="Node3D" parent="." index="10"]
unique_name_in_owner = true
script = ExtResource("5_gum7v") script = ExtResource("5_gum7v")
[node name="PlayerInfo" type="Node3D" parent="." index="11"] [node name="PlayerInfo" type="Node3D" parent="." index="11"]

@ -6,7 +6,7 @@
[ext_resource type="Script" path="res://script/ui/hud/headbar_page.gd" id="3_6chl0"] [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="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="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="Script" path="res://script/ui/hud/lock_item.gd" id="5_usy8x"]
[ext_resource type="Texture2D" uid="uid://dx2vp753yvh4y" path="res://render/texture/shape/lock.png" id="6_hmslt"] [ext_resource type="Texture2D" uid="uid://dx2vp753yvh4y" path="res://render/texture/shape/lock.png" id="6_hmslt"]
[sub_resource type="Animation" id="Animation_ikdwl"] [sub_resource type="Animation" id="Animation_ikdwl"]
@ -103,13 +103,14 @@ texture_progress = ExtResource("2_sktwb")
[node name="LockItem" type="Control" parent="HudPage"] [node name="LockItem" type="Control" parent="HudPage"]
anchors_preset = 0 anchors_preset = 0
offset_right = 40.0 offset_left = 424.0
offset_bottom = 40.0 offset_top = 232.0
offset_right = 464.0
offset_bottom = 272.0
scale = Vector2(0.5, 0.5) scale = Vector2(0.5, 0.5)
script = ExtResource("5_usy8x") script = ExtResource("5_usy8x")
[node name="Lock" type="Sprite2D" parent="HudPage/LockItem"] [node name="Lock" type="Sprite2D" parent="HudPage/LockItem"]
position = Vector2(656, 320)
texture = ExtResource("6_hmslt") texture = ExtResource("6_hmslt")
[node name="AnimationPlayer" type="AnimationPlayer" parent="HudPage/LockItem"] [node name="AnimationPlayer" type="AnimationPlayer" parent="HudPage/LockItem"]

@ -1,9 +1,7 @@
extends SubViewportContainer extends SubViewportContainer
func _ready(): func _ready():
var basic_size = Vector2(640,360) var camera = Global.camera_mgr as CameraManager
var scale_y = cos(deg_to_rad(45.0)) * 2.0 #1.414 size = camera.stage_size
var sample_rate = 3.0 scale = camera.stage_scale
size = basic_size * sample_rate position.y = - camera.stage_offset_y
scale = Vector2(1,scale_y) / sample_rate
position.y = - (scale_y - 1.0) * 0.5 / sample_rate * size.y

@ -2,5 +2,5 @@ extends Action
func run(character: Character) -> int: func run(character: Character) -> int:
var player_id = Global.character_mgr.get_player_id() var player_id = Global.character_mgr.get_player_id()
character.set_status("target",player_id) character.set_target(player_id)
return SUCCESS return SUCCESS

@ -88,3 +88,4 @@ func add_attack(from:int,dir:Vector2,attack:AttackCfg):battle.add_attack(from,di
func show_hit_text(value:String):SignalManager.character_hit_text.emit(id(),value) func show_hit_text(value:String):SignalManager.character_hit_text.emit(id(),value)
func show_hit_damage(value:float):SignalManager.character_hit_damage.emit(id(),value) func show_hit_damage(value:float):SignalManager.character_hit_damage.emit(id(),value)
func add_mp(value:float):battle.add_mp(value) func add_mp(value:float):battle.add_mp(value)
func set_target(target:int):set_status("target",target);SignalManager.character_target_changed.emit(id(),target)

@ -4,12 +4,20 @@ class_name PlayerAction
@onready var character = (get_owner() as Character) @onready var character = (get_owner() as Character)
@onready var status = (%Status as Status) @onready var status = (%Status as Status)
func lock(is_lock:bool): func check_action(key:String,is_pressed:bool) -> bool:
match key:
"lock":lock(is_pressed)
_:return false
return true
func lock(is_pressed:bool):
var has_target = status.target != 0 var has_target = status.target != 0
if is_lock: if is_pressed == has_target:
return
if is_pressed:
var enemy_list = Global.character_mgr.get_enemy_list(character.id()) var enemy_list = Global.character_mgr.get_enemy_list(character.id())
if enemy_list: if enemy_list:
pass character.set_target(enemy_list[0].id())
else: else:
status.set_status("target",0) character.set_target(0)

@ -8,12 +8,3 @@ func _process(delta):
if Global.is_level_loading_contorl: if Global.is_level_loading_contorl:
return return
MetSys.set_player_position(character.pos2D()) 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)

@ -3,25 +3,25 @@ class_name PlayerInput
@onready var status = (%Status as Status) @onready var status = (%Status as Status)
@onready var combo = (%Combo as Combo) @onready var combo = (%Combo as Combo)
@onready var action = (%PlayerAction as PlayerAction)
var action_map = {} var action_map = {}
func _ready(): func _ready():
SignalManager.connect("input_action_pressed",on_input_action_pressed) SignalManager.connect("input_action_pressed",on_input_action_pressed)
SignalManager.connect("input_action_pressed",on_input_action_released) SignalManager.connect("input_action_released",on_input_action_released)
SignalManager.connect("input_action_move",on_input_action_move) SignalManager.connect("input_action_move",on_input_action_move)
func on_input_action_pressed(event:InputEvent): func on_input_action_pressed(action_name:String):
for action_name in InputMap.get_actions(): if not action_name in action_map:
if event.is_action(action_name): action_map[action_name] = true
if not action_name in action_map: if not action.check_action(action_name,true):
action_map[action_name] = true combo.add_input_action(action_name)
combo.add_input_action(action_name)
func on_input_action_released(event:InputEvent): func on_input_action_released(action_name:String):
for action_name in InputMap.get_actions(): if action_name in action_map:
if event.is_action(action_name): action_map.erase(action_name)
action_map.erase(action_name) action.check_action(action_name,false)
func on_input_action_move(input_dir): func on_input_action_move(input_dir):
status.input_dir = input_dir status.input_dir = input_dir

@ -8,7 +8,15 @@ var target_pos_now:Vector2 = Vector2.ZERO
var level_size:Vector2 var level_size:Vector2
var offset:float = 5 var offset:float = 5
var camera_limit = Vector3(6.4,1.04,3.6) #x,up,z-downd var camera_limit = Vector3(6.4,1.04,3.6) #x,up,z-downd
var screen_pos_scale = Vector2(3,1.5/cos(deg_to_rad(45.0)))
var basic_size = Vector2(640,360)
var scale_y = cos(deg_to_rad(45.0)) * 2.0 #1.414
var sample_rate = 3.0
var stage_size = basic_size * sample_rate
var stage_scale = Vector2(1,scale_y) / sample_rate
var stage_offset_y = (scale_y - 1.0) * 0.5 / sample_rate * stage_size.y
var screen_pos_scale = Vector2(sample_rate,sample_rate/scale_y)
var screen_pos_offset = Vector2(0,-stage_offset_y)
func _ready(): func _ready():
Global.camera_mgr = self Global.camera_mgr = self
@ -66,5 +74,7 @@ func get_screen_pos(pos:Vector3) -> Vector2:
var ret = unproject_position(pos) var ret = unproject_position(pos)
ret.x /= screen_pos_scale.x ret.x /= screen_pos_scale.x
ret.y /= screen_pos_scale.y ret.y /= screen_pos_scale.y
ret.x += screen_pos_offset.x
ret.y += screen_pos_offset.y
return ret return ret

@ -3,9 +3,10 @@ extends Node3D
func _input(event): func _input(event):
if !event.is_action_type(): if !event.is_action_type():
return return
if event.is_pressed(): for action_name in InputMap.get_actions():
SignalManager.input_action_pressed.emit(event) if event.is_action_pressed(action_name):
elif event.is_released(): SignalManager.input_action_pressed.emit(action_name)
SignalManager.input_action_released.emit(event) elif event.is_action_released(action_name):
SignalManager.input_action_released.emit(action_name)
var input_dir = Input.get_vector("move_left", "move_right", "move_up", "move_down") var input_dir = Input.get_vector("move_left", "move_right", "move_up", "move_down")
SignalManager.input_action_move.emit(input_dir) SignalManager.input_action_move.emit(input_dir)

@ -3,7 +3,7 @@ extends Node3D
#input #input
signal input_action_pressed signal input_action_pressed
signal input_action_released signal input_action_released
signal input_action_move(Vector2) signal input_action_move
#effect #effect
signal effect_create signal effect_create
@ -13,6 +13,7 @@ signal character_create
signal character_die signal character_die
signal character_destroy signal character_destroy
signal character_pos_changed signal character_pos_changed
signal character_target_changed
signal character_hit_floor signal character_hit_floor
signal character_ui_pos_changed signal character_ui_pos_changed
signal character_status_changed signal character_status_changed

@ -8,15 +8,21 @@ var target_id : int
func _ready(): func _ready():
SignalManager.character_ui_pos_changed.connect(on_character_ui_pos_changed) SignalManager.character_ui_pos_changed.connect(on_character_ui_pos_changed)
SignalManager.character_target_changed.connect(on_character_target_changed)
animation.play("rotate") 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): func on_character_ui_pos_changed(id:int,pos:Vector3):
if id != target_id: if id != target_id:
return return
position = camera.get_screen_pos(pos) position = camera.get_screen_pos(pos)
func on_character_target_changed(id:int,target:int):
if id != Global.character_mgr.get_player_id():
return
var character_target = Global.character_mgr.get_character(target)
target_id = target
if not character_target:
visible = false
return
visible = true
position = camera.get_screen_pos(character_target.ui_pos())
Loading…
Cancel
Save