战斗
This commit is contained in:
parent
65d996a668
commit
319aad8b76
1
2d_action_choice.gd
Normal file
1
2d_action_choice.gd
Normal file
@ -0,0 +1 @@
|
|||||||
|
extends Button
|
@ -1031,3 +1031,10 @@ func explore_finish(character_data:Dictionary,round_data:Dictionary):
|
|||||||
Toast.popup(Database.get_scene_name(now_scene)+"探索度增加"+str(round_data["right_total"])+"!")
|
Toast.popup(Database.get_scene_name(now_scene)+"探索度增加"+str(round_data["right_total"])+"!")
|
||||||
change_scene_explore(now_scene,round_data["right_total"])
|
change_scene_explore(now_scene,round_data["right_total"])
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
var now_2d_fight_scene:Fight2D
|
||||||
|
@ -37,5 +37,60 @@ func get_action_could_use_block(_self:UnitBlock,tile_map_area:Rect2i,global_bloc
|
|||||||
res[ind.x][ind.y]=true
|
res[ind.x][ind.y]=true
|
||||||
attack_cache=res
|
attack_cache=res
|
||||||
|
|
||||||
|
|
||||||
return res
|
return res
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#展示施法演示
|
||||||
|
func draw_action_with_target(_self:UnitBlock,tile_map_area:Rect2i,global_block_data:Dictionary,target:Vector2i,block_add_pos:TileMapLayer):
|
||||||
|
var right_pos=tile_map_area.position+tile_map_area.size
|
||||||
|
if target.x<tile_map_area.position.x or target.x>right_pos.x or target.y<tile_map_area.position.y or target.y>right_pos.y:
|
||||||
|
Global.now_2d_fight_scene.close_right_character()
|
||||||
|
var crood=target-tile_map_area.position
|
||||||
|
var cache=attack_cache[crood.x][crood.y]
|
||||||
|
if cache:
|
||||||
|
Global.now_2d_fight_scene.show_right_character({})
|
||||||
|
else:
|
||||||
|
Global.now_2d_fight_scene.close_right_character()
|
||||||
|
|
||||||
|
pass
|
||||||
|
#释放施法演示
|
||||||
|
func del_action_with_target():
|
||||||
|
|
||||||
|
Global.now_2d_fight_scene.close_right_character()
|
||||||
|
|
||||||
|
pass
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#在_self上使用action动作,返回是否成功
|
||||||
|
func block_use_action(_self:UnitBlock,tile_map_area:Rect2i,global_block_data:Dictionary,target=null)->bool:
|
||||||
|
if not target is Vector2i:
|
||||||
|
return false
|
||||||
|
var character_pos:Vector2i=_self.block_pos
|
||||||
|
var up:Vector2i=character_pos-Vector2i(0,1)
|
||||||
|
var down:Vector2i=character_pos+Vector2i(0,1)
|
||||||
|
var left:Vector2i=character_pos-Vector2i(1,0)
|
||||||
|
var right:Vector2i=character_pos+Vector2i(1,0)
|
||||||
|
var pos_arr=[up,down,left,right]
|
||||||
|
if not target in pos_arr:
|
||||||
|
return false
|
||||||
|
if not global_block_data.has(target):
|
||||||
|
return false
|
||||||
|
var could_attack=false
|
||||||
|
var block_arr=global_block_data[target]
|
||||||
|
for j in block_arr:
|
||||||
|
if j is BaseBlock:
|
||||||
|
could_attack =could_attack or j.could_be_used_for_target
|
||||||
|
if j.could_be_used_for_target:
|
||||||
|
j.attacked()
|
||||||
|
if could_attack:
|
||||||
|
return true
|
||||||
|
|
||||||
|
return false
|
||||||
|
var draw_line
|
||||||
|
@ -3,6 +3,13 @@ extends Node2D
|
|||||||
#基础地块
|
#基础地块
|
||||||
class_name BaseBlock
|
class_name BaseBlock
|
||||||
|
|
||||||
|
@export var block_name:String="default"
|
||||||
|
|
||||||
|
|
||||||
|
@export var block_attribute:Dictionary={
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
#当地块要求进行移动时发出
|
#当地块要求进行移动时发出
|
||||||
signal request_block_move(before_pos:Vector2i,request_pos:Vector2i)
|
signal request_block_move(before_pos:Vector2i,request_pos:Vector2i)
|
||||||
#当前地块是否可以行走
|
#当前地块是否可以行走
|
||||||
|
@ -3,6 +3,8 @@ extends BaseBlock
|
|||||||
|
|
||||||
class_name UnitBlock
|
class_name UnitBlock
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#单位的数据
|
#单位的数据
|
||||||
var unit_data:Dictionary={}
|
var unit_data:Dictionary={}
|
||||||
|
|
||||||
|
15
scene/_2d_fight/2d_action_choice.tscn
Normal file
15
scene/_2d_fight/2d_action_choice.tscn
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
[gd_scene load_steps=2 format=3 uid="uid://b0ctm82e6x7yp"]
|
||||||
|
|
||||||
|
[ext_resource type="Script" path="res://2d_action_choice.gd" id="1_yf2d6"]
|
||||||
|
|
||||||
|
[node name="2d_action_choice" type="Button"]
|
||||||
|
size_flags_horizontal = 3
|
||||||
|
theme_override_colors/font_hover_pressed_color = Color(0.984314, 1, 0.00392157, 1)
|
||||||
|
theme_override_colors/font_hover_color = Color(0.984314, 1, 0.00392157, 1)
|
||||||
|
theme_override_colors/font_pressed_color = Color(0.984314, 1, 0.00392157, 1)
|
||||||
|
theme_override_colors/font_focus_color = Color(0.984314, 1, 0.00392157, 1)
|
||||||
|
theme_override_font_sizes/font_size = 26
|
||||||
|
text = "结束"
|
||||||
|
flat = true
|
||||||
|
script = ExtResource("1_yf2d6")
|
||||||
|
metadata/_edit_use_anchors_ = true
|
@ -1,4 +1,10 @@
|
|||||||
extends Node2D
|
extends Node2D
|
||||||
|
class_name Fight2D
|
||||||
|
const BLOCK_TAG_LABEL = preload("res://scene/_2d_fight/block_tag_label.tscn")
|
||||||
|
const _2D_ACTION_CHOICE = preload("res://scene/_2d_fight/2d_action_choice.tscn")
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#网格寻路系统
|
#网格寻路系统
|
||||||
var astar:AStarGrid2D=AStarGrid2D.new()
|
var astar:AStarGrid2D=AStarGrid2D.new()
|
||||||
|
|
||||||
@ -105,7 +111,10 @@ func turn():
|
|||||||
j.turn()
|
j.turn()
|
||||||
next()
|
next()
|
||||||
pass
|
pass
|
||||||
|
var character_block_tween
|
||||||
func next():
|
func next():
|
||||||
|
if %left_character_drawer.is_open:
|
||||||
|
close_left_character()
|
||||||
for i in %choice_add_pos.get_children():
|
for i in %choice_add_pos.get_children():
|
||||||
i.queue_free()
|
i.queue_free()
|
||||||
now_index+=1
|
now_index+=1
|
||||||
@ -115,12 +124,22 @@ func next():
|
|||||||
return
|
return
|
||||||
var now_block:UnitBlock=friendly_side[now_index]
|
var now_block:UnitBlock=friendly_side[now_index]
|
||||||
now_use_block=now_block
|
now_use_block=now_block
|
||||||
|
if character_block_tween!=null:
|
||||||
|
character_block_tween.kill()
|
||||||
|
character_block_tween=create_tween()
|
||||||
|
character_block_tween.tween_property(%main_camera,"global_position",now_block.position,0.2)
|
||||||
|
|
||||||
|
show_left_character({})
|
||||||
var choice_arr=now_block.get_all_choice()
|
var choice_arr=now_block.get_all_choice()
|
||||||
for i in range(choice_arr.size()):
|
for i in range(choice_arr.size()):
|
||||||
var new_btn=Button.new()
|
var new_btn=_2D_ACTION_CHOICE.instantiate()
|
||||||
new_btn.pressed.connect(select_choice.bind(i))
|
new_btn.pressed.connect(select_choice.bind(i))
|
||||||
new_btn.text=choice_arr[i]
|
new_btn.text=choice_arr[i]
|
||||||
%choice_add_pos.add_child(new_btn)
|
%choice_add_pos.add_child(new_btn)
|
||||||
|
%action.modulate.a=0
|
||||||
|
%action.show()
|
||||||
|
var tween=create_tween()
|
||||||
|
tween.tween_property(%action,"modulate:a",1,0.2)
|
||||||
pass
|
pass
|
||||||
func select_choice(index:int):
|
func select_choice(index:int):
|
||||||
print(index)
|
print(index)
|
||||||
@ -129,6 +148,7 @@ func select_choice(index:int):
|
|||||||
|
|
||||||
|
|
||||||
func _ready() -> void:
|
func _ready() -> void:
|
||||||
|
Global.now_2d_fight_scene=self
|
||||||
astar.default_compute_heuristic=AStarGrid2D.HEURISTIC_MANHATTAN
|
astar.default_compute_heuristic=AStarGrid2D.HEURISTIC_MANHATTAN
|
||||||
astar.default_estimate_heuristic=AStarGrid2D.HEURISTIC_MANHATTAN
|
astar.default_estimate_heuristic=AStarGrid2D.HEURISTIC_MANHATTAN
|
||||||
astar.diagonal_mode=AStarGrid2D.DIAGONAL_MODE_NEVER
|
astar.diagonal_mode=AStarGrid2D.DIAGONAL_MODE_NEVER
|
||||||
@ -187,10 +207,29 @@ func _process(delta: float) -> void:
|
|||||||
var res=now_action.block_use_action(now_use_block,Rect2i(tile_map_area_from,tile_map_area_to-tile_map_area_from),global_block_data,crood)
|
var res=now_action.block_use_action(now_use_block,Rect2i(tile_map_area_from,tile_map_area_to-tile_map_area_from),global_block_data,crood)
|
||||||
if res:
|
if res:
|
||||||
now_use_action=-1
|
now_use_action=-1
|
||||||
|
else:
|
||||||
|
var crood=%block_add_pos.local_to_map(get_global_mouse_position())
|
||||||
|
if crood!=before_crood:
|
||||||
|
before_index=0
|
||||||
|
if global_block_data.has(crood):
|
||||||
|
var arr=global_block_data[crood]
|
||||||
|
if arr.size()==0:
|
||||||
|
close_block_mes()
|
||||||
|
else:
|
||||||
|
var block:BaseBlock=arr[before_index]
|
||||||
|
pop_up_block_mes(block.block_name,block.block_attribute)
|
||||||
|
else:
|
||||||
|
close_block_mes()
|
||||||
|
|
||||||
|
pass
|
||||||
|
|
||||||
if Input.is_action_just_pressed("esc"):
|
if Input.is_action_just_pressed("esc"):
|
||||||
now_use_action=-1
|
now_use_action=-1
|
||||||
|
#上一次展示的block信息
|
||||||
|
var before_crood:Vector2i=Vector2i.ZERO
|
||||||
|
#上一次弹出地块信息的层级
|
||||||
|
var before_index:int=0
|
||||||
|
|
||||||
func _input(event: InputEvent) -> void:
|
func _input(event: InputEvent) -> void:
|
||||||
if event is InputEventMouseMotion:
|
if event is InputEventMouseMotion:
|
||||||
var mouse_pos=get_global_mouse_position()
|
var mouse_pos=get_global_mouse_position()
|
||||||
@ -304,3 +343,81 @@ func _on_pop_4_pressed() -> void:
|
|||||||
func _on_alert_timer_timeout() -> void:
|
func _on_alert_timer_timeout() -> void:
|
||||||
%alert_drawer.change_open(false)
|
%alert_drawer.change_open(false)
|
||||||
pass # Replace with function body.
|
pass # Replace with function body.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#弹出地块信息,attribute字典应为String:bool
|
||||||
|
func pop_up_block_mes(_name:String,attribute:Dictionary):
|
||||||
|
%block_name.text=_name
|
||||||
|
for i in %block_label_add_pos.get_children():
|
||||||
|
i.queue_free()
|
||||||
|
for i in attribute.keys():
|
||||||
|
var new_tag=BLOCK_TAG_LABEL.instantiate()
|
||||||
|
%block_label_add_pos.add_child(new_tag)
|
||||||
|
new_tag.set_mes(i,attribute[i])
|
||||||
|
|
||||||
|
%block_drawer.change_open(true)
|
||||||
|
|
||||||
|
#收起地块信息
|
||||||
|
func close_block_mes():
|
||||||
|
if %block_drawer.is_open:
|
||||||
|
%block_drawer.change_open(false)
|
||||||
|
pass
|
||||||
|
|
||||||
|
func pop_up_choice(text:String,acc_callback:Callable,ref_callback:Callable):
|
||||||
|
%choice.modulate.a=0
|
||||||
|
%choice_text.text=text
|
||||||
|
ac_cal=acc_callback
|
||||||
|
re_cal=ref_callback
|
||||||
|
%choice.show()
|
||||||
|
var tween=create_tween()
|
||||||
|
tween.tween_property(%choice,"modulate:a",1,0.2)
|
||||||
|
|
||||||
|
|
||||||
|
pass
|
||||||
|
var ac_cal
|
||||||
|
var re_cal
|
||||||
|
|
||||||
|
func _on_action_close_pressed() -> void:
|
||||||
|
%action.hide()
|
||||||
|
pop_up_choice("是否结束本角色回合?",next,%action.show)
|
||||||
|
pass # Replace with function body.
|
||||||
|
|
||||||
|
|
||||||
|
func _on_choice_accept_pressed() -> void:
|
||||||
|
if ac_cal is Callable:
|
||||||
|
if ac_cal.is_valid():
|
||||||
|
ac_cal.call()
|
||||||
|
%choice.hide()
|
||||||
|
pass # Replace with function body.
|
||||||
|
|
||||||
|
|
||||||
|
func _on_choice_refuse_pressed() -> void:
|
||||||
|
if re_cal is Callable:
|
||||||
|
if re_cal.is_valid():
|
||||||
|
re_cal.call()
|
||||||
|
%choice.hide()
|
||||||
|
pass # Replace with function body.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#展示左边的角色信息
|
||||||
|
func show_left_character(data:Dictionary):
|
||||||
|
%left_character_drawer.change_open(true)
|
||||||
|
pass
|
||||||
|
#展示右边的角色信息
|
||||||
|
func show_right_character(data:Dictionary):
|
||||||
|
%right_character_drawer.change_open(true)
|
||||||
|
pass
|
||||||
|
|
||||||
|
#关闭左边的角色信息
|
||||||
|
func close_left_character():
|
||||||
|
if %left_character_drawer.is_open:
|
||||||
|
%left_character_drawer.change_open(false)
|
||||||
|
pass
|
||||||
|
#关闭右边的角色信息
|
||||||
|
func close_right_character():
|
||||||
|
if %right_character_drawer.is_open:
|
||||||
|
%right_character_drawer.change_open(false)
|
||||||
|
pass
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
[gd_scene load_steps=50 format=4 uid="uid://du6ct6v45ljtu"]
|
[gd_scene load_steps=51 format=4 uid="uid://du6ct6v45ljtu"]
|
||||||
|
|
||||||
[ext_resource type="Script" path="res://scene/_2d_fight/2d_fight.gd" id="1_i1eox"]
|
[ext_resource type="Script" path="res://scene/_2d_fight/2d_fight.gd" id="1_i1eox"]
|
||||||
[ext_resource type="Texture2D" uid="uid://wld1fbwto47r" path="res://res/ui/ui_033_2d_fight/icon_color_64x64/black.png" id="2_rfpw5"]
|
[ext_resource type="Texture2D" uid="uid://wld1fbwto47r" path="res://res/ui/ui_033_2d_fight/icon_color_64x64/black.png" id="2_rfpw5"]
|
||||||
@ -28,6 +28,7 @@
|
|||||||
[ext_resource type="Texture2D" uid="uid://baqbhrxe7o1ay" path="res://res/ui/new_ui_005_2d_fight/move.png" id="26_2cd20"]
|
[ext_resource type="Texture2D" uid="uid://baqbhrxe7o1ay" path="res://res/ui/new_ui_005_2d_fight/move.png" id="26_2cd20"]
|
||||||
[ext_resource type="Texture2D" uid="uid://dv62ydas2laek" path="res://res/ui/new_ui_005_2d_fight/矩形 100@1x.png" id="27_mopsr"]
|
[ext_resource type="Texture2D" uid="uid://dv62ydas2laek" path="res://res/ui/new_ui_005_2d_fight/矩形 100@1x.png" id="27_mopsr"]
|
||||||
[ext_resource type="Texture2D" uid="uid://dcmnrhjs332n2" path="res://res/ui/new_ui_005_2d_fight/角色@1x-2.png" id="28_0p1qk"]
|
[ext_resource type="Texture2D" uid="uid://dcmnrhjs332n2" path="res://res/ui/new_ui_005_2d_fight/角色@1x-2.png" id="28_0p1qk"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://3r388ypcowro" path="res://scene/_2d_fight/2d_fight_attribute_table.tscn" id="28_57n5y"]
|
||||||
[ext_resource type="Texture2D" uid="uid://q3hydkfgphua" path="res://res/ui/new_ui_005_2d_fight/矩形 133@1x.png" id="29_gfcum"]
|
[ext_resource type="Texture2D" uid="uid://q3hydkfgphua" path="res://res/ui/new_ui_005_2d_fight/矩形 133@1x.png" id="29_gfcum"]
|
||||||
|
|
||||||
[sub_resource type="Gradient" id="Gradient_qwpaw"]
|
[sub_resource type="Gradient" id="Gradient_qwpaw"]
|
||||||
@ -355,6 +356,7 @@ tile_set = SubResource("TileSet_aef74")
|
|||||||
|
|
||||||
[node name="color_block" type="TileMapLayer" parent="tile_map"]
|
[node name="color_block" type="TileMapLayer" parent="tile_map"]
|
||||||
unique_name_in_owner = true
|
unique_name_in_owner = true
|
||||||
|
visible = false
|
||||||
tile_set = SubResource("TileSet_j5hfj")
|
tile_set = SubResource("TileSet_j5hfj")
|
||||||
|
|
||||||
[node name="mouse_block" type="TileMapLayer" parent="tile_map"]
|
[node name="mouse_block" type="TileMapLayer" parent="tile_map"]
|
||||||
@ -401,7 +403,6 @@ theme_override_constants/margin_bottom = 10
|
|||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
|
|
||||||
[node name="choice_add_pos" type="VBoxContainer" parent="CanvasLayer/panel_container/Panel/MarginContainer/VBoxContainer"]
|
[node name="choice_add_pos" type="VBoxContainer" parent="CanvasLayer/panel_container/Panel/MarginContainer/VBoxContainer"]
|
||||||
unique_name_in_owner = true
|
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
size_flags_vertical = 3
|
size_flags_vertical = 3
|
||||||
theme_override_constants/separation = 30
|
theme_override_constants/separation = 30
|
||||||
@ -452,6 +453,8 @@ script = ExtResource("9_kd3fp")
|
|||||||
button_model = 3
|
button_model = 3
|
||||||
disable_button = true
|
disable_button = true
|
||||||
animation_model = 4
|
animation_model = 4
|
||||||
|
is_open = false
|
||||||
|
rag = 1.0
|
||||||
metadata/_edit_use_anchors_ = true
|
metadata/_edit_use_anchors_ = true
|
||||||
|
|
||||||
[node name="TextureRect" type="TextureRect" parent="CanvasLayer/Control/block_drawer"]
|
[node name="TextureRect" type="TextureRect" parent="CanvasLayer/Control/block_drawer"]
|
||||||
@ -469,7 +472,8 @@ anchor_bottom = 0.291925
|
|||||||
texture = ExtResource("10_mh3nh")
|
texture = ExtResource("10_mh3nh")
|
||||||
metadata/_edit_use_anchors_ = true
|
metadata/_edit_use_anchors_ = true
|
||||||
|
|
||||||
[node name="Label" type="Label" parent="CanvasLayer/Control/block_drawer/TextureRect/TextureRect"]
|
[node name="block_name" type="Label" parent="CanvasLayer/Control/block_drawer/TextureRect/TextureRect"]
|
||||||
|
unique_name_in_owner = true
|
||||||
layout_mode = 1
|
layout_mode = 1
|
||||||
anchors_preset = -1
|
anchors_preset = -1
|
||||||
anchor_left = 0.0454545
|
anchor_left = 0.0454545
|
||||||
@ -527,6 +531,7 @@ layout_mode = 2
|
|||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
|
|
||||||
[node name="Control" type="Control" parent="CanvasLayer/Control"]
|
[node name="Control" type="Control" parent="CanvasLayer/Control"]
|
||||||
|
visible = false
|
||||||
layout_mode = 1
|
layout_mode = 1
|
||||||
anchors_preset = 15
|
anchors_preset = 15
|
||||||
anchor_right = 1.0
|
anchor_right = 1.0
|
||||||
@ -743,7 +748,6 @@ offset_bottom = 7.0
|
|||||||
grow_vertical = 0
|
grow_vertical = 0
|
||||||
script = ExtResource("9_kd3fp")
|
script = ExtResource("9_kd3fp")
|
||||||
button_model = 3
|
button_model = 3
|
||||||
animation_time = 0.2
|
|
||||||
disable_button = true
|
disable_button = true
|
||||||
animation_model = 0
|
animation_model = 0
|
||||||
metadata/_edit_use_anchors_ = true
|
metadata/_edit_use_anchors_ = true
|
||||||
@ -890,6 +894,23 @@ anchor_bottom = 0.719298
|
|||||||
texture = ExtResource("27_mopsr")
|
texture = ExtResource("27_mopsr")
|
||||||
metadata/_edit_use_anchors_ = true
|
metadata/_edit_use_anchors_ = true
|
||||||
|
|
||||||
|
[node name="2d_fight_attribute_table" parent="CanvasLayer/Control/left_character_drawer/Control/TextureRect" instance=ExtResource("28_57n5y")]
|
||||||
|
layout_mode = 0
|
||||||
|
anchor_left = 0.628572
|
||||||
|
anchor_top = 0.201756
|
||||||
|
anchor_right = 0.815873
|
||||||
|
anchor_bottom = 0.719297
|
||||||
|
offset_right = 0.0
|
||||||
|
offset_bottom = 0.0
|
||||||
|
attribute_name_1 = "近战"
|
||||||
|
attribute_value_1 = 95.0
|
||||||
|
attribute_name_2 = "护甲"
|
||||||
|
attribute_value_2 = 95.0
|
||||||
|
attribute_name_3 = "暴击率"
|
||||||
|
attribute_name_4 = "远程"
|
||||||
|
attribute_value_4 = 50.0
|
||||||
|
metadata/_edit_use_anchors_ = true
|
||||||
|
|
||||||
[node name="right_character_drawer" type="Container" parent="CanvasLayer/Control"]
|
[node name="right_character_drawer" type="Container" parent="CanvasLayer/Control"]
|
||||||
unique_name_in_owner = true
|
unique_name_in_owner = true
|
||||||
layout_mode = 1
|
layout_mode = 1
|
||||||
@ -903,9 +924,10 @@ offset_bottom = 7.0
|
|||||||
grow_vertical = 0
|
grow_vertical = 0
|
||||||
script = ExtResource("9_kd3fp")
|
script = ExtResource("9_kd3fp")
|
||||||
button_model = 2
|
button_model = 2
|
||||||
animation_time = 0.2
|
|
||||||
disable_button = true
|
disable_button = true
|
||||||
animation_model = 0
|
animation_model = 0
|
||||||
|
is_open = false
|
||||||
|
rag = 1.0
|
||||||
metadata/_edit_use_anchors_ = true
|
metadata/_edit_use_anchors_ = true
|
||||||
|
|
||||||
[node name="Control" type="Control" parent="CanvasLayer/Control/right_character_drawer"]
|
[node name="Control" type="Control" parent="CanvasLayer/Control/right_character_drawer"]
|
||||||
@ -1055,7 +1077,9 @@ anchor_bottom = 0.75
|
|||||||
texture = ExtResource("27_mopsr")
|
texture = ExtResource("27_mopsr")
|
||||||
metadata/_edit_use_anchors_ = true
|
metadata/_edit_use_anchors_ = true
|
||||||
|
|
||||||
[node name="TextureRect" type="TextureRect" parent="CanvasLayer/Control"]
|
[node name="choice" type="TextureRect" parent="CanvasLayer/Control"]
|
||||||
|
unique_name_in_owner = true
|
||||||
|
visible = false
|
||||||
layout_mode = 1
|
layout_mode = 1
|
||||||
anchors_preset = -1
|
anchors_preset = -1
|
||||||
anchor_left = 0.398958
|
anchor_left = 0.398958
|
||||||
@ -1065,7 +1089,8 @@ anchor_bottom = 0.992593
|
|||||||
texture = ExtResource("29_gfcum")
|
texture = ExtResource("29_gfcum")
|
||||||
metadata/_edit_use_anchors_ = true
|
metadata/_edit_use_anchors_ = true
|
||||||
|
|
||||||
[node name="Label" type="Label" parent="CanvasLayer/Control/TextureRect"]
|
[node name="choice_text" type="Label" parent="CanvasLayer/Control/choice"]
|
||||||
|
unique_name_in_owner = true
|
||||||
layout_mode = 1
|
layout_mode = 1
|
||||||
anchors_preset = -1
|
anchors_preset = -1
|
||||||
anchor_left = 0.113503
|
anchor_left = 0.113503
|
||||||
@ -1078,7 +1103,7 @@ horizontal_alignment = 1
|
|||||||
vertical_alignment = 1
|
vertical_alignment = 1
|
||||||
metadata/_edit_use_anchors_ = true
|
metadata/_edit_use_anchors_ = true
|
||||||
|
|
||||||
[node name="Button" type="Button" parent="CanvasLayer/Control/TextureRect"]
|
[node name="choice_accept" type="Button" parent="CanvasLayer/Control/choice"]
|
||||||
layout_mode = 1
|
layout_mode = 1
|
||||||
anchors_preset = -1
|
anchors_preset = -1
|
||||||
anchor_left = 0.18591
|
anchor_left = 0.18591
|
||||||
@ -1095,7 +1120,7 @@ text = "确定"
|
|||||||
flat = true
|
flat = true
|
||||||
metadata/_edit_use_anchors_ = true
|
metadata/_edit_use_anchors_ = true
|
||||||
|
|
||||||
[node name="Button2" type="Button" parent="CanvasLayer/Control/TextureRect"]
|
[node name="choice_refuse" type="Button" parent="CanvasLayer/Control/choice"]
|
||||||
layout_mode = 1
|
layout_mode = 1
|
||||||
anchors_preset = -1
|
anchors_preset = -1
|
||||||
anchor_left = 0.506849
|
anchor_left = 0.506849
|
||||||
@ -1111,9 +1136,63 @@ text = "取消"
|
|||||||
flat = true
|
flat = true
|
||||||
metadata/_edit_use_anchors_ = true
|
metadata/_edit_use_anchors_ = true
|
||||||
|
|
||||||
|
[node name="action" type="TextureRect" parent="CanvasLayer/Control"]
|
||||||
|
unique_name_in_owner = true
|
||||||
|
visible = false
|
||||||
|
layout_mode = 1
|
||||||
|
anchors_preset = -1
|
||||||
|
anchor_left = 0.336458
|
||||||
|
anchor_top = 0.562037
|
||||||
|
anchor_right = 0.691146
|
||||||
|
anchor_bottom = 1.06944
|
||||||
|
texture = ExtResource("29_gfcum")
|
||||||
|
metadata/_edit_use_anchors_ = true
|
||||||
|
|
||||||
|
[node name="Label" type="Label" parent="CanvasLayer/Control/action"]
|
||||||
|
layout_mode = 1
|
||||||
|
anchors_preset = -1
|
||||||
|
anchor_left = 0.13069
|
||||||
|
anchor_top = 0.218978
|
||||||
|
anchor_right = 0.885463
|
||||||
|
anchor_bottom = 0.344891
|
||||||
|
offset_left = -1.52588e-05
|
||||||
|
offset_top = -1.52588e-05
|
||||||
|
theme_override_font_sizes/font_size = 26
|
||||||
|
text = "我要做什么?"
|
||||||
|
horizontal_alignment = 1
|
||||||
|
vertical_alignment = 1
|
||||||
|
metadata/_edit_use_anchors_ = true
|
||||||
|
|
||||||
|
[node name="VBoxContainer" type="VBoxContainer" parent="CanvasLayer/Control/action"]
|
||||||
|
layout_mode = 0
|
||||||
|
anchor_left = 0.146843
|
||||||
|
anchor_top = 0.344891
|
||||||
|
anchor_right = 0.86931
|
||||||
|
anchor_bottom = 0.806569
|
||||||
|
metadata/_edit_use_anchors_ = true
|
||||||
|
|
||||||
|
[node name="choice_add_pos" type="VBoxContainer" parent="CanvasLayer/Control/action/VBoxContainer"]
|
||||||
|
unique_name_in_owner = true
|
||||||
|
layout_mode = 2
|
||||||
|
size_flags_vertical = 3
|
||||||
|
|
||||||
|
[node name="action_close" type="Button" parent="CanvasLayer/Control/action/VBoxContainer"]
|
||||||
|
layout_mode = 2
|
||||||
|
theme_override_colors/font_hover_pressed_color = Color(0.984314, 1, 0.00392157, 1)
|
||||||
|
theme_override_colors/font_hover_color = Color(0.984314, 1, 0.00392157, 1)
|
||||||
|
theme_override_colors/font_pressed_color = Color(0.984314, 1, 0.00392157, 1)
|
||||||
|
theme_override_colors/font_focus_color = Color(0.984314, 1, 0.00392157, 1)
|
||||||
|
theme_override_font_sizes/font_size = 26
|
||||||
|
text = "结束"
|
||||||
|
flat = true
|
||||||
|
metadata/_edit_use_anchors_ = true
|
||||||
|
|
||||||
[connection signal="pressed" from="CanvasLayer/panel_container/Panel/MarginContainer/VBoxContainer/next" to="." method="_on_next_pressed"]
|
[connection signal="pressed" from="CanvasLayer/panel_container/Panel/MarginContainer/VBoxContainer/next" to="." method="_on_next_pressed"]
|
||||||
[connection signal="pressed" from="CanvasLayer/Control/HBoxContainer/pop1" to="." method="_on_pop_1_pressed"]
|
[connection signal="pressed" from="CanvasLayer/Control/HBoxContainer/pop1" to="." method="_on_pop_1_pressed"]
|
||||||
[connection signal="pressed" from="CanvasLayer/Control/HBoxContainer/pop2" to="." method="_on_pop_2_pressed"]
|
[connection signal="pressed" from="CanvasLayer/Control/HBoxContainer/pop2" to="." method="_on_pop_2_pressed"]
|
||||||
[connection signal="pressed" from="CanvasLayer/Control/HBoxContainer/pop3" to="." method="_on_pop_3_pressed"]
|
[connection signal="pressed" from="CanvasLayer/Control/HBoxContainer/pop3" to="." method="_on_pop_3_pressed"]
|
||||||
[connection signal="pressed" from="CanvasLayer/Control/HBoxContainer/pop4" to="." method="_on_pop_4_pressed"]
|
[connection signal="pressed" from="CanvasLayer/Control/HBoxContainer/pop4" to="." method="_on_pop_4_pressed"]
|
||||||
[connection signal="timeout" from="CanvasLayer/Control/alert_drawer/alert_timer" to="." method="_on_alert_timer_timeout"]
|
[connection signal="timeout" from="CanvasLayer/Control/alert_drawer/alert_timer" to="." method="_on_alert_timer_timeout"]
|
||||||
|
[connection signal="pressed" from="CanvasLayer/Control/choice/choice_accept" to="." method="_on_choice_accept_pressed"]
|
||||||
|
[connection signal="pressed" from="CanvasLayer/Control/choice/choice_refuse" to="." method="_on_choice_refuse_pressed"]
|
||||||
|
[connection signal="pressed" from="CanvasLayer/Control/action/VBoxContainer/action_close" to="." method="_on_action_close_pressed"]
|
||||||
|
108
scene/_2d_fight/2d_fight_attribute_table.gd
Normal file
108
scene/_2d_fight/2d_fight_attribute_table.gd
Normal file
@ -0,0 +1,108 @@
|
|||||||
|
extends TextureRect
|
||||||
|
|
||||||
|
|
||||||
|
@export var attribute_name_1:String="":
|
||||||
|
set(val):
|
||||||
|
attribute_name_1=val
|
||||||
|
%attribute_name_1.text=val
|
||||||
|
@export var attribute_value_1:float=0:
|
||||||
|
set(val):
|
||||||
|
attribute_value_1=val
|
||||||
|
%attribute_value_1.text=str(val)
|
||||||
|
draw_by_value()
|
||||||
|
@export var attribute_value_1_max:float=100:
|
||||||
|
set(val):
|
||||||
|
attribute_value_1_max=val
|
||||||
|
draw_by_value()
|
||||||
|
|
||||||
|
@export var attribute_name_2:String="":
|
||||||
|
set(val):
|
||||||
|
attribute_name_2=val
|
||||||
|
%attribute_name_2.text=val
|
||||||
|
@export var attribute_value_2:float=0:
|
||||||
|
set(val):
|
||||||
|
attribute_value_2=val
|
||||||
|
%attribute_value_2.text=str(val)
|
||||||
|
draw_by_value()
|
||||||
|
@export var attribute_value_2_max:float=100:
|
||||||
|
set(val):
|
||||||
|
attribute_value_2_max=val
|
||||||
|
draw_by_value()
|
||||||
|
|
||||||
|
@export var attribute_name_3:String="":
|
||||||
|
set(val):
|
||||||
|
attribute_name_3=val
|
||||||
|
%attribute_name_3.text=val
|
||||||
|
@export var attribute_value_3:float=0:
|
||||||
|
set(val):
|
||||||
|
attribute_value_3=val
|
||||||
|
%attribute_value_3.text=str(val)
|
||||||
|
draw_by_value()
|
||||||
|
@export var attribute_value_3_max:float=100:
|
||||||
|
set(val):
|
||||||
|
attribute_value_3_max=val
|
||||||
|
draw_by_value()
|
||||||
|
|
||||||
|
@export var attribute_name_4:String="":
|
||||||
|
set(val):
|
||||||
|
attribute_name_4=val
|
||||||
|
%attribute_name_4.text=val
|
||||||
|
|
||||||
|
@export var attribute_value_4:float=0:
|
||||||
|
set(val):
|
||||||
|
attribute_value_4=val
|
||||||
|
%attribute_value_4.text=str(val)
|
||||||
|
draw_by_value()
|
||||||
|
@export var attribute_value_4_max:float=100:
|
||||||
|
set(val):
|
||||||
|
attribute_value_4_max=val
|
||||||
|
draw_by_value()
|
||||||
|
|
||||||
|
|
||||||
|
@export var color:Color=Color("FCE1A3")
|
||||||
|
# Called when the node enters the scene tree for the first time.
|
||||||
|
func _ready() -> void:
|
||||||
|
await get_tree().process_frame
|
||||||
|
queue_redraw()
|
||||||
|
pass # Replace with function body.
|
||||||
|
|
||||||
|
|
||||||
|
# Called every frame. 'delta' is the elapsed time since the previous frame.
|
||||||
|
func _process(delta: float) -> void:
|
||||||
|
pass
|
||||||
|
|
||||||
|
var points:PackedVector2Array=PackedVector2Array()
|
||||||
|
|
||||||
|
|
||||||
|
func draw_by_value():
|
||||||
|
print("draw")
|
||||||
|
var f1=attribute_value_1/attribute_value_1_max
|
||||||
|
var f2=attribute_value_2/attribute_value_2_max
|
||||||
|
var f3=attribute_value_3/attribute_value_3_max
|
||||||
|
var f4=attribute_value_4/attribute_value_4_max
|
||||||
|
|
||||||
|
draw_table(f1,f2,f3,f4)
|
||||||
|
func draw_table(up:float,right:float,down:float,left:float):
|
||||||
|
|
||||||
|
|
||||||
|
points.clear()
|
||||||
|
points.append(size/2-Vector2(0,size.y*up/2))
|
||||||
|
points.append(size/2+Vector2(size.x*right/2,0))
|
||||||
|
points.append(size/2+Vector2(0,size.y*down/2))
|
||||||
|
points.append(size/2-Vector2(size.x*left/2,0))
|
||||||
|
queue_redraw()
|
||||||
|
pass
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
func _draw() -> void:
|
||||||
|
print("_draw")
|
||||||
|
print(points)
|
||||||
|
draw_polygon(points,create_packed_color_arr(points.size(),color))
|
||||||
|
|
||||||
|
pass
|
||||||
|
func create_packed_color_arr(_size:int,_color:Color):
|
||||||
|
var new_arr=[]
|
||||||
|
for i in range(_size):
|
||||||
|
new_arr.append(color)
|
||||||
|
return PackedColorArray(new_arr)
|
126
scene/_2d_fight/2d_fight_attribute_table.tscn
Normal file
126
scene/_2d_fight/2d_fight_attribute_table.tscn
Normal file
@ -0,0 +1,126 @@
|
|||||||
|
[gd_scene load_steps=4 format=3 uid="uid://3r388ypcowro"]
|
||||||
|
|
||||||
|
[ext_resource type="Texture2D" uid="uid://dv62ydas2laek" path="res://res/ui/new_ui_005_2d_fight/矩形 100@1x.png" id="1_2iw20"]
|
||||||
|
[ext_resource type="Script" path="res://scene/_2d_fight/2d_fight_attribute_table.gd" id="2_ae48l"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://df3jb4yv1aot" path="res://res/ui/new_ui_005_2d_fight/组 146@1x.png" id="3_71rxy"]
|
||||||
|
|
||||||
|
[node name="2d_fight_attribute_table" type="TextureRect"]
|
||||||
|
offset_right = 118.0
|
||||||
|
offset_bottom = 118.0
|
||||||
|
texture = ExtResource("1_2iw20")
|
||||||
|
script = ExtResource("2_ae48l")
|
||||||
|
|
||||||
|
[node name="TextureRect" type="TextureRect" parent="."]
|
||||||
|
layout_mode = 1
|
||||||
|
anchors_preset = 15
|
||||||
|
anchor_right = 1.0
|
||||||
|
anchor_bottom = 1.0
|
||||||
|
grow_horizontal = 2
|
||||||
|
grow_vertical = 2
|
||||||
|
texture = ExtResource("3_71rxy")
|
||||||
|
|
||||||
|
[node name="attribute_name_1" type="Label" parent="."]
|
||||||
|
unique_name_in_owner = true
|
||||||
|
layout_mode = 1
|
||||||
|
anchors_preset = -1
|
||||||
|
anchor_left = 0.101695
|
||||||
|
anchor_top = -0.330508
|
||||||
|
anchor_right = 0.508475
|
||||||
|
anchor_bottom = -0.0338983
|
||||||
|
theme_override_colors/font_color = Color(0.290196, 0.133333, 0.0235294, 1)
|
||||||
|
theme_override_font_sizes/font_size = 24
|
||||||
|
text = "属性"
|
||||||
|
metadata/_edit_use_anchors_ = true
|
||||||
|
|
||||||
|
[node name="attribute_value_1" type="Label" parent="."]
|
||||||
|
unique_name_in_owner = true
|
||||||
|
layout_mode = 1
|
||||||
|
anchors_preset = -1
|
||||||
|
anchor_left = 0.567797
|
||||||
|
anchor_top = -0.330508
|
||||||
|
anchor_right = 0.974576
|
||||||
|
anchor_bottom = -0.0338983
|
||||||
|
theme_override_colors/font_color = Color(0.133333, 0.32549, 0.964706, 1)
|
||||||
|
theme_override_font_sizes/font_size = 24
|
||||||
|
text = "值"
|
||||||
|
metadata/_edit_use_anchors_ = true
|
||||||
|
|
||||||
|
[node name="attribute_name_2" type="Label" parent="."]
|
||||||
|
unique_name_in_owner = true
|
||||||
|
layout_mode = 1
|
||||||
|
anchors_preset = -1
|
||||||
|
anchor_left = 1.01695
|
||||||
|
anchor_top = 0.20339
|
||||||
|
anchor_right = 1.42373
|
||||||
|
anchor_bottom = 0.5
|
||||||
|
theme_override_colors/font_color = Color(0.290196, 0.133333, 0.0235294, 1)
|
||||||
|
theme_override_font_sizes/font_size = 24
|
||||||
|
text = "属性"
|
||||||
|
metadata/_edit_use_anchors_ = true
|
||||||
|
|
||||||
|
[node name="attribute_value_2" type="Label" parent="."]
|
||||||
|
unique_name_in_owner = true
|
||||||
|
layout_mode = 1
|
||||||
|
anchors_preset = -1
|
||||||
|
anchor_left = 1.01695
|
||||||
|
anchor_top = 0.5
|
||||||
|
anchor_right = 1.42373
|
||||||
|
anchor_bottom = 0.79661
|
||||||
|
theme_override_colors/font_color = Color(0.133333, 0.32549, 0.964706, 1)
|
||||||
|
theme_override_font_sizes/font_size = 24
|
||||||
|
text = "值"
|
||||||
|
horizontal_alignment = 1
|
||||||
|
vertical_alignment = 1
|
||||||
|
metadata/_edit_use_anchors_ = true
|
||||||
|
|
||||||
|
[node name="attribute_name_3" type="Label" parent="."]
|
||||||
|
unique_name_in_owner = true
|
||||||
|
layout_mode = 1
|
||||||
|
anchors_preset = -1
|
||||||
|
anchor_left = -0.40678
|
||||||
|
anchor_top = 0.20339
|
||||||
|
anchor_bottom = 0.5
|
||||||
|
theme_override_colors/font_color = Color(0.290196, 0.133333, 0.0235294, 1)
|
||||||
|
theme_override_font_sizes/font_size = 24
|
||||||
|
text = "属性"
|
||||||
|
metadata/_edit_use_anchors_ = true
|
||||||
|
|
||||||
|
[node name="attribute_value_3" type="Label" parent="."]
|
||||||
|
unique_name_in_owner = true
|
||||||
|
layout_mode = 1
|
||||||
|
anchors_preset = -1
|
||||||
|
anchor_left = -0.40678
|
||||||
|
anchor_top = 0.5
|
||||||
|
anchor_bottom = 0.79661
|
||||||
|
theme_override_colors/font_color = Color(0.133333, 0.32549, 0.964706, 1)
|
||||||
|
theme_override_font_sizes/font_size = 24
|
||||||
|
text = "值"
|
||||||
|
horizontal_alignment = 1
|
||||||
|
vertical_alignment = 1
|
||||||
|
metadata/_edit_use_anchors_ = true
|
||||||
|
|
||||||
|
[node name="attribute_name_4" type="Label" parent="."]
|
||||||
|
unique_name_in_owner = true
|
||||||
|
layout_mode = 1
|
||||||
|
anchors_preset = -1
|
||||||
|
anchor_left = 0.101695
|
||||||
|
anchor_top = 1.04237
|
||||||
|
anchor_right = 0.508475
|
||||||
|
anchor_bottom = 1.33898
|
||||||
|
theme_override_colors/font_color = Color(0.290196, 0.133333, 0.0235294, 1)
|
||||||
|
theme_override_font_sizes/font_size = 24
|
||||||
|
text = "属性"
|
||||||
|
metadata/_edit_use_anchors_ = true
|
||||||
|
|
||||||
|
[node name="attribute_value_4" type="Label" parent="."]
|
||||||
|
unique_name_in_owner = true
|
||||||
|
layout_mode = 1
|
||||||
|
anchors_preset = -1
|
||||||
|
anchor_left = 0.567797
|
||||||
|
anchor_top = 1.04237
|
||||||
|
anchor_right = 0.974576
|
||||||
|
anchor_bottom = 1.33898
|
||||||
|
theme_override_colors/font_color = Color(0.133333, 0.32549, 0.964706, 1)
|
||||||
|
theme_override_font_sizes/font_size = 24
|
||||||
|
text = "值"
|
||||||
|
metadata/_edit_use_anchors_ = true
|
@ -4,3 +4,7 @@ func _on_create():
|
|||||||
self.could_use_action=[BlockActionMove.new(),BlockActionAttackNormal.new()]
|
self.could_use_action=[BlockActionMove.new(),BlockActionAttackNormal.new()]
|
||||||
super._on_create()
|
super._on_create()
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
func attacked():
|
||||||
|
$AnimationPlayer.play("shake")
|
||||||
|
pass
|
||||||
|
@ -1,8 +1,45 @@
|
|||||||
[gd_scene load_steps=3 format=3 uid="uid://5vqwfn05i63"]
|
[gd_scene load_steps=6 format=3 uid="uid://5vqwfn05i63"]
|
||||||
|
|
||||||
[ext_resource type="Script" path="res://scene/_2d_fight/block_scene/test_character.gd" id="1_543qj"]
|
[ext_resource type="Script" path="res://scene/_2d_fight/block_scene/test_character.gd" id="1_543qj"]
|
||||||
[ext_resource type="Texture2D" uid="uid://u55mv3uq7pod" path="res://res/ui/new_ui_005_2d_fight/蒙版组 18@1x.png" id="2_bnn18"]
|
[ext_resource type="Texture2D" uid="uid://u55mv3uq7pod" path="res://res/ui/new_ui_005_2d_fight/蒙版组 18@1x.png" id="2_bnn18"]
|
||||||
|
|
||||||
|
[sub_resource type="Animation" id="Animation_olb0q"]
|
||||||
|
resource_name = "shake"
|
||||||
|
length = 0.2
|
||||||
|
tracks/0/type = "value"
|
||||||
|
tracks/0/imported = false
|
||||||
|
tracks/0/enabled = true
|
||||||
|
tracks/0/path = NodePath("Sprite2D:position")
|
||||||
|
tracks/0/interp = 1
|
||||||
|
tracks/0/loop_wrap = true
|
||||||
|
tracks/0/keys = {
|
||||||
|
"times": PackedFloat32Array(0, 0.0333333, 0.0666667, 0.1, 0.133333, 0.166667, 0.2),
|
||||||
|
"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1, 1),
|
||||||
|
"update": 0,
|
||||||
|
"values": [Vector2(0, 0), Vector2(6, 2), Vector2(-17, -6), Vector2(26, -4), Vector2(-7, -7), Vector2(11, -2), Vector2(0, 0)]
|
||||||
|
}
|
||||||
|
|
||||||
|
[sub_resource type="Animation" id="Animation_4i1ic"]
|
||||||
|
length = 0.001
|
||||||
|
tracks/0/type = "value"
|
||||||
|
tracks/0/imported = false
|
||||||
|
tracks/0/enabled = true
|
||||||
|
tracks/0/path = NodePath("Sprite2D:position")
|
||||||
|
tracks/0/interp = 1
|
||||||
|
tracks/0/loop_wrap = true
|
||||||
|
tracks/0/keys = {
|
||||||
|
"times": PackedFloat32Array(0),
|
||||||
|
"transitions": PackedFloat32Array(1),
|
||||||
|
"update": 0,
|
||||||
|
"values": [Vector2(0, 0)]
|
||||||
|
}
|
||||||
|
|
||||||
|
[sub_resource type="AnimationLibrary" id="AnimationLibrary_7o6we"]
|
||||||
|
_data = {
|
||||||
|
"RESET": SubResource("Animation_4i1ic"),
|
||||||
|
"shake": SubResource("Animation_olb0q")
|
||||||
|
}
|
||||||
|
|
||||||
[node name="test_character" type="Node2D"]
|
[node name="test_character" type="Node2D"]
|
||||||
script = ExtResource("1_543qj")
|
script = ExtResource("1_543qj")
|
||||||
could_be_used_for_target = true
|
could_be_used_for_target = true
|
||||||
@ -10,3 +47,8 @@ could_be_used_for_target = true
|
|||||||
[node name="Sprite2D" type="Sprite2D" parent="."]
|
[node name="Sprite2D" type="Sprite2D" parent="."]
|
||||||
scale = Vector2(0.915, 0.915)
|
scale = Vector2(0.915, 0.915)
|
||||||
texture = ExtResource("2_bnn18")
|
texture = ExtResource("2_bnn18")
|
||||||
|
|
||||||
|
[node name="AnimationPlayer" type="AnimationPlayer" parent="."]
|
||||||
|
libraries = {
|
||||||
|
"": SubResource("AnimationLibrary_7o6we")
|
||||||
|
}
|
||||||
|
@ -5,6 +5,10 @@
|
|||||||
|
|
||||||
[node name="Wall" type="Node2D"]
|
[node name="Wall" type="Node2D"]
|
||||||
script = ExtResource("1_vd8gg")
|
script = ExtResource("1_vd8gg")
|
||||||
|
block_name = "墙"
|
||||||
|
block_attribute = {
|
||||||
|
"可移动": false
|
||||||
|
}
|
||||||
|
|
||||||
[node name="Sprite2D" type="Sprite2D" parent="."]
|
[node name="Sprite2D" type="Sprite2D" parent="."]
|
||||||
texture = ExtResource("2_rhwnk")
|
texture = ExtResource("2_rhwnk")
|
||||||
|
8
scene/_2d_fight/block_tag_label.gd
Normal file
8
scene/_2d_fight/block_tag_label.gd
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
extends HBoxContainer
|
||||||
|
|
||||||
|
#设置block mes的显示信息
|
||||||
|
func set_mes(_name:String,value:bool):
|
||||||
|
$Label.text=_name
|
||||||
|
$TextureRect.visible=not value
|
||||||
|
|
||||||
|
pass
|
@ -1,10 +1,12 @@
|
|||||||
[gd_scene load_steps=2 format=3 uid="uid://bv4c1xq4wm2o7"]
|
[gd_scene load_steps=3 format=3 uid="uid://bv4c1xq4wm2o7"]
|
||||||
|
|
||||||
|
[ext_resource type="Script" path="res://scene/_2d_fight/block_tag_label.gd" id="1_orsy7"]
|
||||||
[ext_resource type="Texture2D" uid="uid://cxxqhiporcwlp" path="res://res/ui/new_ui_005_2d_fight/组 114@1x.png" id="1_x8c6l"]
|
[ext_resource type="Texture2D" uid="uid://cxxqhiporcwlp" path="res://res/ui/new_ui_005_2d_fight/组 114@1x.png" id="1_x8c6l"]
|
||||||
|
|
||||||
[node name="block_tag_label" type="HBoxContainer"]
|
[node name="block_tag_label" type="HBoxContainer"]
|
||||||
offset_right = 84.0
|
offset_right = 84.0
|
||||||
offset_bottom = 32.0
|
offset_bottom = 32.0
|
||||||
|
script = ExtResource("1_orsy7")
|
||||||
|
|
||||||
[node name="Label" type="Label" parent="."]
|
[node name="Label" type="Label" parent="."]
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
|
1
scene/gacha3d/node_3d.gd
Normal file
1
scene/gacha3d/node_3d.gd
Normal file
@ -0,0 +1 @@
|
|||||||
|
extends Node3D
|
6
scene/gacha3d/node_3d.tscn
Normal file
6
scene/gacha3d/node_3d.tscn
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
[gd_scene load_steps=2 format=3 uid="uid://b2rw6p7ov3pti"]
|
||||||
|
|
||||||
|
[ext_resource type="Script" path="res://scene/gacha3d/node_3d.gd" id="1_o4ka8"]
|
||||||
|
|
||||||
|
[node name="Node3D" type="Node3D"]
|
||||||
|
script = ExtResource("1_o4ka8")
|
31
scene/gacha3d/sprite_3d.tscn
Normal file
31
scene/gacha3d/sprite_3d.tscn
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
[gd_scene load_steps=4 format=3 uid="uid://uxqmenk7dwva"]
|
||||||
|
|
||||||
|
[sub_resource type="ViewportTexture" id="ViewportTexture_2gwg3"]
|
||||||
|
viewport_path = NodePath("SubViewport")
|
||||||
|
|
||||||
|
[sub_resource type="Gradient" id="Gradient_m1mq6"]
|
||||||
|
|
||||||
|
[sub_resource type="GradientTexture2D" id="GradientTexture2D_hrx3e"]
|
||||||
|
gradient = SubResource("Gradient_m1mq6")
|
||||||
|
width = 570
|
||||||
|
height = 880
|
||||||
|
|
||||||
|
[node name="Sprite3D" type="Sprite3D"]
|
||||||
|
double_sided = false
|
||||||
|
texture = SubResource("ViewportTexture_2gwg3")
|
||||||
|
|
||||||
|
[node name="SubViewport" type="SubViewport" parent="."]
|
||||||
|
size = Vector2i(570, 880)
|
||||||
|
|
||||||
|
[node name="Control" type="Control" parent="SubViewport"]
|
||||||
|
layout_mode = 3
|
||||||
|
anchors_preset = 15
|
||||||
|
anchor_right = 1.0
|
||||||
|
anchor_bottom = 1.0
|
||||||
|
grow_horizontal = 2
|
||||||
|
grow_vertical = 2
|
||||||
|
|
||||||
|
[node name="Sprite3D" type="Sprite3D" parent="."]
|
||||||
|
transform = Transform3D(-1, 0, -8.74228e-08, 0, 1, 0, 8.74228e-08, 0, -1, 0, 0, 0)
|
||||||
|
double_sided = false
|
||||||
|
texture = SubResource("GradientTexture2D_hrx3e")
|
Loading…
Reference in New Issue
Block a user