9.22上午

This commit is contained in:
TsubakiLoL 2024-09-22 11:48:18 +08:00
parent f89a8a85ab
commit 20539613bd
14 changed files with 164 additions and 66 deletions

View File

@ -12,3 +12,11 @@ func set_bgm(value):
%BGM.play()
tween = get_tree().create_tween()
tween.tween_property(%BGM, "volume_db",0 , 0.5)
func play_effect(value):
%Effect.stream=value
%Effect.play()
func _on_bgm_finished() -> void:
%BGM.play()
pass # Replace with function body.

View File

@ -8,3 +8,9 @@ script = ExtResource("1_ah4s8")
[node name="BGM" type="AudioStreamPlayer" parent="."]
unique_name_in_owner = true
bus = &"BGM"
[node name="Effect" type="AudioStreamPlayer" parent="."]
unique_name_in_owner = true
bus = &"Effect"
[connection signal="finished" from="BGM" to="." method="_on_bgm_finished"]

View File

@ -34,8 +34,30 @@ var now_game_data:Dictionary={
"gold":9999,
"health":100,
"spirit":999,
"map":"map_01"
"map":"map_01",
"move_ability":1,
"time_unix":999999
}
var triger:Dictionary={
"change_event":func (data):now_game_flow.show_event(data),
"change_texture": func (data):now_game_flow.event_panel.change_texture(data),
"change_text":func(data):now_game_flow.event_panel.change_text(data),
"change_choice":func(data):now_game_flow.event_panel.change_choice(data),
"increase_health":func (data):now_game_data.health-=data,
}
func call_triger(triger_type:String,data):
if triger.has(triger_type):
return triger[triger_type].call(data)
else:
return null
func move_scene(scene_id:String,distance):
pass
func get_now_scene():
return now_game_data["now_scene"]
var now_game_flow:GameFlow
func get_now_character_data():
return now_game_data["character_data"]
@ -45,6 +67,7 @@ func _ready() -> void:
load_event_data()
load_scene_data()
load_character_data()
load_map_data()
func load_texture_data():
var file=FileAccess.open(texture_json_path,FileAccess.READ)
var str=file.get_as_text()

View File

@ -4,13 +4,12 @@ class_name MapIndex
signal click(scene_id:String)
func _on_linyi_pressed() -> void:
pass # Replace with function body.
func _on_jining_pressed() -> void:
pass # Replace with function body.
##点击某个场景后应当调用
func click_scene(scene_id:String):
click.emit(scene_id)
##预留的获取地图坐标的接口,用来放置玩家当前位置图标
func get_scene_global_pos(scene_id:String)->Vector2:
return Vector2(0,0)
##获取两地距离的接口
func get_scene_distance(scene_from:String,scene_to:String):
return 100

View File

@ -7,37 +7,59 @@
{
"name":"测试选项1",
"triger":[{
"type":"change_scene"
},
{
"type":"change_event",
"data":"event_01"
"type":"change_scene",
"data":""
},
{
"type":"change_texture",
"data":"test_character"
},
{
"type":"music",
"type":"change_choice",
"data":[
{
"name":"测试选项更改后",
"triger":[]
}
]
},
{
"type":"play_effects",
"data":"res://test/audio/attack_0.wav"
},
{
"type":"fight"
"type":"BGM",
"data":"res://test/audio/attack_0.wav"
},
{
"type":"identification"
"type":"fight",
"data":""
},
{
"type":"change_attribute"
"type":"identification",
"data":""
},
{
"type":"change_value"
"type":"change_attribute",
"data":""
},
{
"type":"change_value",
"data":""
},
]
},
{
"name":"测试选项2"
"name":"测试选项2",
"triger":[
{
"type":"change_event",
"data":"event_01"
},
]
}
]
}

View File

@ -2,6 +2,12 @@
"map_01":
{
"name":"测试地图01",
"index":[]
"index":["res://test/scene/map_example0.tscn",
"res://test/scene/map_example1.tscn",
"res://test/scene/map_example2.tscn"
],
"scale_index":[1.2,2],
"scale_limit":[1,3],
"init_size":[1920,1080]
}
}

View File

@ -40,23 +40,21 @@ func choice_click(event_data:Dictionary):
match i["type"]:
"change_event":
set_event_data(i["data"])
"change_texture":
event_texture.texture=Global.get_texture(i["data"])
pass
"end":
hide()
"music":
audio_stream_player.stream=load(i["data"])
audio_stream_player.play()
pass
pass
Global.call_triger(i["type"],i["data"])
pass
pass
func change_texture(texture_id:String):
event_texture.texture=Global.get_texture(texture_id)
func change_text(text:String):
event_intro.text=text
func change_choice(choice_data:Array):
for i in choice_add_pos.get_children():
i.queue_free()
for i in choice_data:
var new_btn=EVENT_CHOICE_BUTTON.instantiate()
choice_add_pos.add_child(new_btn)
new_btn.set_data(i)
new_btn.click.connect(choice_click)
pass

View File

@ -29,7 +29,7 @@ func set_scene(id:String):
var new_btn=GAME_FLOW_EVENT.instantiate()
event.add_child(new_btn)
new_btn.set_data(i)
new_btn.pressed.connect(event_pressed)
new_btn.pressed.connect(show_event)
for i in scene_data["linked_scene"]:
var new_place=GAME_FLOW_PLACE.instantiate()
place_add.add_child(new_place)
@ -48,7 +48,7 @@ func place_pressed(data:Dictionary):
await animation_player.animation_finished
animation_mask.hide()
pass
func event_pressed(event_data:Dictionary):
func show_event(event_id:String):
event_panel.show()
event_panel.set_event_data(event_data["event"])
event_panel.set_event_data(event_id)
pass

View File

@ -1,6 +1,6 @@
extends Panel
@onready var label: Label = $Label
signal pressed(data:Dictionary)
signal pressed(event_id:String)
var data:Dictionary
func set_data(d:Dictionary):
data=d
@ -8,5 +8,5 @@ func set_data(d:Dictionary):
func _on_tool_button_pressed() -> void:
pressed.emit(data)
pressed.emit(data["event"])
pass # Replace with function body.

View File

@ -5,13 +5,15 @@ extends Control
@onready var pos: Label = $TextureRect/pos
@onready var h_box_container: HBoxContainer = $ScrollContainer/HBoxContainer
@onready var scroll_container: ScrollContainer = $ScrollContainer
@onready var map_0=$ScrollContainer/HBoxContainer/TabContainer/map_example
@onready var map_1=$ScrollContainer/HBoxContainer/TabContainer/TextureRect
@onready var map_2=$ScrollContainer/HBoxContainer/TabContainer/TextureRect2
@onready var map_now:=$ScrollContainer/HBoxContainer/TabContainer/map_example
@onready var map_0
@onready var map_1
@onready var map_2
@onready var map_now
@onready var map_add_pos: MarginContainer = $ScrollContainer/HBoxContainer/map_add_pos
var scale_rag:float=1:
set(val):
if val>1.3 and val<1.5 and (scale_rag<1.3 or scale_rag>1.5):
if val>scale_index_1 and val<scale_index_2 and (scale_rag<scale_index_1 or scale_rag>scale_index_2):
var t=get_tree().create_tween()
t.tween_property(map_now,"modulate:a",0,0.1)
t.tween_callback(map_now.hide)
@ -20,7 +22,7 @@ var scale_rag:float=1:
map_1.show()
map_now=map_1
t2.tween_property(map_1,"modulate:a",1,0.1)
elif val<=1.3 and scale_rag>1.3:
elif val<=scale_index_1 and scale_rag>scale_index_1:
var t=get_tree().create_tween()
t.tween_property(map_now,"modulate:a",0,0.1)
t.tween_callback(map_now.hide)
@ -29,7 +31,7 @@ var scale_rag:float=1:
map_0.show()
map_now=map_0
t2.tween_property(map_0,"modulate:a",1,0.1)
elif val>1.5 and scale_rag<1.5:
elif val>scale_index_2 and scale_rag<scale_index_2:
var t=get_tree().create_tween()
t.tween_property(map_now,"modulate:a",0,0.1)
t.tween_callback(map_now.hide)
@ -41,7 +43,36 @@ var scale_rag:float=1:
resize_map(scale_rag,val,get_global_mouse_position(),init_size)
scale_rag=val
pass
@export var scale_limit:Vector2=Vector2(1,2)
var scale_limit_min:float=1
var scale_limit_max:float=2
var scale_index_1:float=1.2
var scale_index_2:float=1.5
var map_data:Dictionary
func set_map(id:String):
map_data=Global.get_map_data(id)
var map_index:Array=map_data["index"]
for i in map_add_pos.get_children():
i.queue_free()
var tscn=[load(map_index[0]).instantiate(),load(map_index[1]).instantiate(),load(map_index[2]).instantiate()]
for i in tscn:
map_add_pos.add_child(i)
i.click.connect(click)
map_0=tscn[0]
map_1=tscn[1]
map_2=tscn[2]
map_1.hide()
map_2.hide()
map_now=map_0
var scale_index:Array=map_data["scale_index"]
var scale_limit:Array=map_data["scale_limit"]
scale_limit_min=scale_limit[0]
scale_limit_max=scale_limit[1]
scale_index_1=scale_index[0]
scale_index_2=scale_index[1]
var _init_size=map_data["init_size"]
init_size=Vector2(_init_size[0],_init_size[1])
pass
func resize_map(before_rag:float,rag:float,mouse_pos:Vector2,init:Vector2):
var l=rag/before_rag
var now_pos=Vector2(scroll_container.scroll_horizontal,scroll_container.scroll_vertical)+mouse_pos
@ -53,11 +84,16 @@ func resize_map(before_rag:float,rag:float,mouse_pos:Vector2,init:Vector2):
pass
func click(scene_id:String):
pass
var init_size:Vector2=Vector2(1920,1080)
# Called when the node enters the scene tree for the first time.
func _ready() -> void:
set_map("map_01")
h_box_container.custom_minimum_size=init_size
pass # Replace with function body.
@ -78,12 +114,12 @@ func _gui_input(event: InputEvent) -> void:
else:
keep_tween.stop()
keep_tween=create_tween()
keep_tween.tween_property(self,"scale_rag",clamp(scale_rag+0.2,scale_limit.x,scale_limit.y),0.1)
keep_tween.tween_property(self,"scale_rag",clamp(scale_rag+0.2,scale_limit_min,scale_limit_max),0.1)
if Input.is_action_just_pressed("mouse_down"):
if keep_tween==null:
keep_tween=create_tween()
else:
keep_tween.stop()
keep_tween=create_tween()
keep_tween.tween_property(self,"scale_rag",clamp(scale_rag-0.2,scale_limit.x,scale_limit.y),0.1)
keep_tween.tween_property(self,"scale_rag",clamp(scale_rag-0.2,scale_limit_min,scale_limit_max),0.1)

View File

@ -49,18 +49,18 @@ size_flags_horizontal = 0
texture = ExtResource("2_slael")
expand_mode = 3
[node name="TabContainer" type="MarginContainer" parent="ScrollContainer/HBoxContainer"]
[node name="map_add_pos" type="MarginContainer" parent="ScrollContainer/HBoxContainer"]
layout_mode = 2
size_flags_horizontal = 3
[node name="map_example" parent="ScrollContainer/HBoxContainer/TabContainer" instance=ExtResource("5_jn1dj")]
[node name="map_example" parent="ScrollContainer/HBoxContainer/map_add_pos" instance=ExtResource("5_jn1dj")]
layout_mode = 2
[node name="TextureRect" parent="ScrollContainer/HBoxContainer/TabContainer" instance=ExtResource("6_a88yc")]
[node name="TextureRect" parent="ScrollContainer/HBoxContainer/map_add_pos" instance=ExtResource("6_a88yc")]
visible = false
layout_mode = 2
[node name="TextureRect2" parent="ScrollContainer/HBoxContainer/TabContainer" instance=ExtResource("7_bvfra")]
[node name="TextureRect2" parent="ScrollContainer/HBoxContainer/map_add_pos" instance=ExtResource("7_bvfra")]
visible = false
layout_mode = 2

View File

@ -10,7 +10,7 @@ anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
size_flags_horizontal = 3
size_flags_vertical = 3
size_flags_vertical = 6
texture = ExtResource("1_ihnyk")
expand_mode = 1
expand_mode = 5
script = ExtResource("1_iwfll")

View File

@ -9,6 +9,6 @@ anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
size_flags_horizontal = 3
size_flags_vertical = 3
size_flags_vertical = 6
texture = ExtResource("1_fj1ma")
expand_mode = 1
expand_mode = 5

View File

@ -9,6 +9,6 @@ anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
size_flags_horizontal = 3
size_flags_vertical = 3
size_flags_vertical = 6
texture = ExtResource("1_cnx2r")
expand_mode = 1
expand_mode = 5