优化飘动的寻人启事
This commit is contained in:
parent
92e2e8aa68
commit
d074f49d5d
@ -29,9 +29,10 @@ ui_检阅,检阅,,,
|
|||||||
ui_收起,收起,,,
|
ui_收起,收起,,,
|
||||||
ui_夜行船1,百岁光阴一梦蝶。,,,
|
ui_夜行船1,百岁光阴一梦蝶。,,,
|
||||||
ui_夜行船2,重回⾸往事堪嗟。,,,
|
ui_夜行船2,重回⾸往事堪嗟。,,,
|
||||||
ui_夜行船3,今⽇春来。明朝花谢。,,,
|
ui_夜行船3,今⽇春来。,,,
|
||||||
ui_夜行船4,急罚盏夜阑灯灭。,,,
|
ui_夜行船4,明朝花谢。,,,
|
||||||
ui_夜行船5,夜行船,,,
|
ui_夜行船5,急罚盏夜阑灯灭。,,,
|
||||||
|
ui_夜行船6,夜行船,,,
|
||||||
prop_空手,空手,,,
|
prop_空手,空手,,,
|
||||||
prop_信碎片1,信碎片(一),,,[#texture=c01/信件左上.png]
|
prop_信碎片1,信碎片(一),,,[#texture=c01/信件左上.png]
|
||||||
prop_信碎片2,信碎片(二),,,[#texture=c01/信件右上.png]
|
prop_信碎片2,信碎片(二),,,[#texture=c01/信件右上.png]
|
||||||
|
|
@ -33,9 +33,10 @@
|
|||||||
|
|
||||||
百岁光阴一梦蝶。 [ID:ui_夜行船1]
|
百岁光阴一梦蝶。 [ID:ui_夜行船1]
|
||||||
重回⾸往事堪嗟。 [ID:ui_夜行船2]
|
重回⾸往事堪嗟。 [ID:ui_夜行船2]
|
||||||
今⽇春来。明朝花谢。 [ID:ui_夜行船3]
|
今⽇春来。 [ID:ui_夜行船3]
|
||||||
急罚盏夜阑灯灭。 [ID:ui_夜行船4]
|
明朝花谢。 [ID:ui_夜行船4]
|
||||||
夜行船 [ID:ui_夜行船5]
|
急罚盏夜阑灯灭。 [ID:ui_夜行船5]
|
||||||
|
夜行船 [ID:ui_夜行船6]
|
||||||
=> END
|
=> END
|
||||||
|
|
||||||
|
|
||||||
|
@ -566,6 +566,7 @@ size = Vector2(10, 100)
|
|||||||
resource_local_to_scene = true
|
resource_local_to_scene = true
|
||||||
|
|
||||||
[node name="S05院长房间" type="Node2D"]
|
[node name="S05院长房间" type="Node2D"]
|
||||||
|
position = Vector2(1, 0)
|
||||||
metadata/_edit_vertical_guides_ = [-45.0]
|
metadata/_edit_vertical_guides_ = [-45.0]
|
||||||
|
|
||||||
[node name="Ground" parent="." instance=ExtResource("1_ff4yb")]
|
[node name="Ground" parent="." instance=ExtResource("1_ff4yb")]
|
||||||
@ -640,10 +641,14 @@ shape = SubResource("RectangleShape2D_6bim4")
|
|||||||
|
|
||||||
[node name="座钟" parent="Ground/DeployLayer" index="5" instance=ExtResource("10_18v0g")]
|
[node name="座钟" parent="Ground/DeployLayer" index="5" instance=ExtResource("10_18v0g")]
|
||||||
position = Vector2(335, 20)
|
position = Vector2(335, 20)
|
||||||
texture = ExtResource("7_3tetc")
|
|
||||||
title_filter = "c01"
|
title_filter = "c01"
|
||||||
note_key = "c01_院长座钟"
|
note_key = "c01_院长座钟"
|
||||||
|
|
||||||
|
[node name="Sprite2D" type="Sprite2D" parent="Ground/DeployLayer/座钟"]
|
||||||
|
position = Vector2(0, 12)
|
||||||
|
scale = Vector2(0.8, 0.8)
|
||||||
|
texture = ExtResource("7_3tetc")
|
||||||
|
|
||||||
[node name="ambush鸡毛掸子" parent="Ground/DeployLayer" index="6" instance=ExtResource("15_1uixh")]
|
[node name="ambush鸡毛掸子" parent="Ground/DeployLayer" index="6" instance=ExtResource("15_1uixh")]
|
||||||
unique_name_in_owner = true
|
unique_name_in_owner = true
|
||||||
position = Vector2(270, 23.5)
|
position = Vector2(270, 23.5)
|
||||||
@ -778,6 +783,7 @@ theme_override_constants/margin_top = 70
|
|||||||
theme_override_constants/margin_right = 20
|
theme_override_constants/margin_right = 20
|
||||||
|
|
||||||
[node name="VerticalLabel" parent="Ground/Intro/HBoxContainer/MarginContainer" instance=ExtResource("20_t1dxj")]
|
[node name="VerticalLabel" parent="Ground/Intro/HBoxContainer/MarginContainer" instance=ExtResource("20_t1dxj")]
|
||||||
|
visible = false
|
||||||
custom_minimum_size = Vector2(20, 0)
|
custom_minimum_size = Vector2(20, 0)
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
text = "u
|
text = "u
|
||||||
|
@ -115,7 +115,7 @@ player_y = 67
|
|||||||
|
|
||||||
[node name="AnimationPlayer" parent="Ground" index="0"]
|
[node name="AnimationPlayer" parent="Ground" index="0"]
|
||||||
libraries = {
|
libraries = {
|
||||||
"": SubResource("AnimationLibrary_fq7pt")
|
&"": SubResource("AnimationLibrary_fq7pt")
|
||||||
}
|
}
|
||||||
script = ExtResource("2_fkfhi")
|
script = ExtResource("2_fkfhi")
|
||||||
oneshot_animation = ""
|
oneshot_animation = ""
|
||||||
@ -135,12 +135,16 @@ position = Vector2(1958, 30)
|
|||||||
target_scene = "c01_s07"
|
target_scene = "c01_s07"
|
||||||
|
|
||||||
[node name="Note院长房间" parent="Ground/DeployLayer" index="2" instance=ExtResource("12_28t76")]
|
[node name="Note院长房间" parent="Ground/DeployLayer" index="2" instance=ExtResource("12_28t76")]
|
||||||
|
visible = false
|
||||||
position = Vector2(575, 9)
|
position = Vector2(575, 9)
|
||||||
|
enabled = false
|
||||||
title_filter = "c01"
|
title_filter = "c01"
|
||||||
note_key = "c01_s06_院长房间"
|
note_key = "c01_s06_院长房间"
|
||||||
|
|
||||||
[node name="Note小孩房间" parent="Ground/DeployLayer" index="3" instance=ExtResource("12_28t76")]
|
[node name="Note小孩房间" parent="Ground/DeployLayer" index="3" instance=ExtResource("12_28t76")]
|
||||||
|
visible = false
|
||||||
position = Vector2(998, 2)
|
position = Vector2(998, 2)
|
||||||
|
enabled = false
|
||||||
title_filter = "c01"
|
title_filter = "c01"
|
||||||
note_key = "c01_s06_小朋友房间"
|
note_key = "c01_s06_小朋友房间"
|
||||||
|
|
||||||
@ -424,6 +428,9 @@ modulate = Color(0.931897, 0.931897, 0.931897, 1)
|
|||||||
position = Vector2(1575, 91)
|
position = Vector2(1575, 91)
|
||||||
character = "小小蝶"
|
character = "小小蝶"
|
||||||
|
|
||||||
|
[node name="ParallaxForeground" parent="Ground" index="7"]
|
||||||
|
visible = false
|
||||||
|
|
||||||
[node name="院长凳子" type="Sprite2D" parent="Ground/ParallaxForeground/BGParallaxLayer" index="0"]
|
[node name="院长凳子" type="Sprite2D" parent="Ground/ParallaxForeground/BGParallaxLayer" index="0"]
|
||||||
position = Vector2(34, 3)
|
position = Vector2(34, 3)
|
||||||
texture = ExtResource("3_su6aw")
|
texture = ExtResource("3_su6aw")
|
||||||
|
@ -51,7 +51,7 @@ func _on_fog_disappear() -> void:
|
|||||||
set_data("fog_disappeared", true)
|
set_data("fog_disappeared", true)
|
||||||
# 显示标题
|
# 显示标题
|
||||||
$chapter_sfx.play()
|
$chapter_sfx.play()
|
||||||
var chapter_title = preload("res://asset/art/scene/c01/s04_旧版序章/f_序章标题.png")
|
var chapter_title = preload("res://asset/art/scene/c01/s02_旧版序章/f_序章标题.png")
|
||||||
SceneManager.pop_center_texture(chapter_title)
|
SceneManager.pop_center_texture(chapter_title)
|
||||||
fog.tween_fog(0, Color.TRANSPARENT, Fog2D.FOG_OFFSET_DEFAULT, 15.0, true)
|
fog.tween_fog(0, Color.TRANSPARENT, Fog2D.FOG_OFFSET_DEFAULT, 15.0, true)
|
||||||
|
|
||||||
|
@ -77,6 +77,7 @@ debug_note = "传送来的节点"
|
|||||||
portal_name = "1"
|
portal_name = "1"
|
||||||
|
|
||||||
[node name="portal_2" parent="Ground/DeployLayer" index="3" instance=ExtResource("3_4myxt")]
|
[node name="portal_2" parent="Ground/DeployLayer" index="3" instance=ExtResource("3_4myxt")]
|
||||||
|
visible = false
|
||||||
position = Vector2(1628, 36)
|
position = Vector2(1628, 36)
|
||||||
debug_note = "传送到公寓楼道"
|
debug_note = "传送到公寓楼道"
|
||||||
portal_name = "2"
|
portal_name = "2"
|
||||||
@ -109,7 +110,7 @@ hook_method = "player_been_catched"
|
|||||||
z_index = -1
|
z_index = -1
|
||||||
position = Vector2(1533, 9.5)
|
position = Vector2(1533, 9.5)
|
||||||
sprite_frames = ExtResource("10_0ohlv")
|
sprite_frames = ExtResource("10_0ohlv")
|
||||||
animation = &"书店老板害怕"
|
animation = &"举碗小孩害怕"
|
||||||
autoplay = "书店老板害怕"
|
autoplay = "书店老板害怕"
|
||||||
|
|
||||||
[node name="孤儿院小孩害怕1" type="AnimatedSprite2D" parent="Ground/DeployLayer" index="7"]
|
[node name="孤儿院小孩害怕1" type="AnimatedSprite2D" parent="Ground/DeployLayer" index="7"]
|
||||||
|
@ -135,7 +135,7 @@ freeze_time = 0.1
|
|||||||
hook_method = "player_been_catched"
|
hook_method = "player_been_catched"
|
||||||
|
|
||||||
[node name="飘动的寻人启事" parent="Ground/DeployLayer" index="5" instance=ExtResource("11_pwu7i")]
|
[node name="飘动的寻人启事" parent="Ground/DeployLayer" index="5" instance=ExtResource("11_pwu7i")]
|
||||||
position = Vector2(655, -58)
|
position = Vector2(952, -57)
|
||||||
|
|
||||||
[node name="陆仁舞刀" parent="Ground/DeployLayer" index="6" instance=ExtResource("14_ct084")]
|
[node name="陆仁舞刀" parent="Ground/DeployLayer" index="6" instance=ExtResource("14_ct084")]
|
||||||
position = Vector2(373, -1)
|
position = Vector2(373, -1)
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
extends Node2D
|
extends Node2D
|
||||||
|
|
||||||
@export var velocity := 0.1
|
@export var velocity := 0.1
|
||||||
@export var area_size := Vector2(400, 50):
|
@export var area_size := Vector2(500, 150):
|
||||||
set(val):
|
set(val):
|
||||||
area_size = val
|
area_size = val
|
||||||
queue_redraw()
|
queue_redraw()
|
||||||
@ -31,7 +31,7 @@ func _draw() -> void:
|
|||||||
|
|
||||||
|
|
||||||
# 最多保持 4 个点; 先生成两个在左侧,再生成两个在右侧,然后再回到左侧,以此循环,形成左右摇摆的闭合路径
|
# 最多保持 4 个点; 先生成两个在左侧,再生成两个在右侧,然后再回到左侧,以此循环,形成左右摇摆的闭合路径
|
||||||
var bezier_points = []
|
var bezier_points = [Vector2(0, 0), Vector2(200, 30), Vector2(350, 60), Vector2(400, 80), Vector2(300, 90), Vector2(250, 120), Vector2(150, 150), Vector2(80, 150), Vector2(0, 150)]
|
||||||
var current_position = Vector2.ZERO
|
var current_position = Vector2.ZERO
|
||||||
var weight := 0.0
|
var weight := 0.0
|
||||||
|
|
||||||
@ -39,9 +39,10 @@ var weight := 0.0
|
|||||||
func _ready() -> void:
|
func _ready() -> void:
|
||||||
if Engine.is_editor_hint():
|
if Engine.is_editor_hint():
|
||||||
return
|
return
|
||||||
# init points
|
# 手动配置运动点
|
||||||
for i in range(4):
|
# # init points
|
||||||
bezier_points.append(_rand_point())
|
# for i in range(5):
|
||||||
|
# bezier_points.append(_rand_point())
|
||||||
sign_mark.enabled = visible
|
sign_mark.enabled = visible
|
||||||
sign_mark.interacted.connect(_on_interacted)
|
sign_mark.interacted.connect(_on_interacted)
|
||||||
visibility_changed.connect(_on_visibility_changed)
|
visibility_changed.connect(_on_visibility_changed)
|
||||||
@ -57,66 +58,67 @@ func _on_visibility_changed() -> void:
|
|||||||
sign_mark.enabled = visible
|
sign_mark.enabled = visible
|
||||||
|
|
||||||
|
|
||||||
func _new_point() -> void:
|
func _next_point() -> void:
|
||||||
# remove the first point
|
# remove the first point
|
||||||
bezier_points.remove_at(0)
|
bezier_points.remove_at(0)
|
||||||
# add a new point
|
# # add a new point
|
||||||
bezier_points.append(_rand_point())
|
# bezier_points.append(_rand_point())
|
||||||
|
|
||||||
|
|
||||||
func _on_interacted() -> void:
|
func _on_interacted() -> void:
|
||||||
if interacted_x == -10000:
|
if interacted_x == -10000:
|
||||||
|
_set_current_x_as_interacted_x()
|
||||||
|
var inspect_texture = preload("res://asset/art/scene/c01/s07_书店外/纸片_正面.png")
|
||||||
|
SceneManager.get_inspector().pop_prop_inspection("", inspect_texture, true)
|
||||||
|
|
||||||
|
|
||||||
|
func _set_current_x_as_interacted_x() -> void:
|
||||||
interacted_x = remote_node.position.x
|
interacted_x = remote_node.position.x
|
||||||
remote_node.position.y = area_size.y
|
remote_node.position.y = area_size.y
|
||||||
remote_sprite.material = null
|
remote_sprite.material = null
|
||||||
ArchiveManager.archive.ground_archive().set_pair(name, "interacted_x", interacted_x)
|
ArchiveManager.archive.ground_archive().set_pair(name, "interacted_x", interacted_x)
|
||||||
if GlobalConfig.DEBUG:
|
if GlobalConfig.DEBUG:
|
||||||
print("interacted_x:", interacted_x)
|
print("interacted_x:", interacted_x)
|
||||||
# TODO 美术更新
|
|
||||||
SceneManager.pop_debug_dialog_info("美术", "寻人启事: 飘动迷你版+详情版")
|
|
||||||
var inspect_texture = preload("res://asset/art/scene/c01/s07_书店外/纸片_正面.png")
|
|
||||||
SceneManager.get_inspector().pop_prop_inspection("", inspect_texture, true)
|
|
||||||
|
|
||||||
|
|
||||||
var _generated_points = -1
|
# var _generated_points = -1
|
||||||
|
|
||||||
|
# func _rand_point() -> Vector2:
|
||||||
func _rand_point() -> Vector2:
|
# _generated_points += 1
|
||||||
_generated_points += 1
|
# # upleft,mid,downright,upright,mid,downleft,...
|
||||||
# upleft,mid,downright,upright,mid,downleft,...
|
# match _generated_points % 6:
|
||||||
match _generated_points % 6:
|
# 0:
|
||||||
0:
|
# _generated_points = 0
|
||||||
_generated_points = 0
|
# # upleft
|
||||||
# upleft
|
# return Vector2(
|
||||||
return Vector2(
|
# randf_range(0, area_size.x * 0.3), randf_range(area_size.y * 0.6, area_size.y)
|
||||||
randf_range(0, area_size.x * 0.3), randf_range(area_size.y * 0.6, area_size.y)
|
# )
|
||||||
)
|
# 1:
|
||||||
1:
|
# # upleft to center
|
||||||
# upleft to center
|
# return Vector2(
|
||||||
return Vector2(
|
# randf_range(area_size.x * 0.4, area_size.x * 0.6),
|
||||||
randf_range(area_size.x * 0.4, area_size.x * 0.6),
|
# randf_range(area_size.y * 0.3, area_size.y * 0.7)
|
||||||
randf_range(area_size.y * 0.3, area_size.y * 0.7)
|
# )
|
||||||
)
|
# 2:
|
||||||
2:
|
# # center to downright
|
||||||
# center to downright
|
# return Vector2(
|
||||||
return Vector2(
|
# randf_range(area_size.x * 0.7, area_size.x), randf_range(0, area_size.y * 0.4)
|
||||||
randf_range(area_size.x * 0.7, area_size.x), randf_range(0, area_size.y * 0.4)
|
# )
|
||||||
)
|
# 3:
|
||||||
3:
|
# # downright to upright
|
||||||
# downright to upright
|
# return Vector2(
|
||||||
return Vector2(
|
# randf_range(area_size.x * 0.7, area_size.x),
|
||||||
randf_range(area_size.x * 0.7, area_size.x),
|
# randf_range(area_size.y * 0.6, area_size.y)
|
||||||
randf_range(area_size.y * 0.6, area_size.y)
|
# )
|
||||||
)
|
# 4:
|
||||||
4:
|
# # upright to center
|
||||||
# upright to center
|
# return Vector2(
|
||||||
return Vector2(
|
# randf_range(area_size.x * 0.4, area_size.x * 0.6),
|
||||||
randf_range(area_size.x * 0.4, area_size.x * 0.6),
|
# randf_range(area_size.y * 0.3, area_size.y * 0.7)
|
||||||
randf_range(area_size.y * 0.3, area_size.y * 0.7)
|
# )
|
||||||
)
|
# _:
|
||||||
_:
|
# # center to downleft
|
||||||
# center to downleft
|
# return Vector2(randf_range(0, area_size.x * 0.3), randf_range(0, area_size.y * 0.4))
|
||||||
return Vector2(randf_range(0, area_size.x * 0.3), randf_range(0, area_size.y * 0.4))
|
|
||||||
|
|
||||||
|
|
||||||
# 从 bezier_points 中取出 4 个点,然后进行贝塞尔曲线插值
|
# 从 bezier_points 中取出 4 个点,然后进行贝塞尔曲线插值
|
||||||
@ -125,10 +127,21 @@ func _rand_point() -> Vector2:
|
|||||||
func _process(delta: float) -> void:
|
func _process(delta: float) -> void:
|
||||||
if Engine.is_editor_hint() or not visible or interacted_x > -10000:
|
if Engine.is_editor_hint() or not visible or interacted_x > -10000:
|
||||||
return
|
return
|
||||||
|
|
||||||
|
# 如果不到 4 个点,跳过
|
||||||
|
if bezier_points.size() < 4:
|
||||||
|
return
|
||||||
|
|
||||||
weight += velocity * delta
|
weight += velocity * delta
|
||||||
if weight >= 1.0:
|
if weight >= 1.0:
|
||||||
weight = 0.0
|
weight = 0.0
|
||||||
_new_point()
|
_next_point()
|
||||||
|
|
||||||
|
# 当不到 4 个点时,落到地上
|
||||||
|
if bezier_points.size() < 4:
|
||||||
|
remote_node.position.y = area_size.y
|
||||||
|
_set_current_x_as_interacted_x()
|
||||||
|
return
|
||||||
|
|
||||||
var p0 = bezier_points[0]
|
var p0 = bezier_points[0]
|
||||||
var p1 = bezier_points[1]
|
var p1 = bezier_points[1]
|
||||||
|
@ -23,14 +23,13 @@ size = Vector2(20, 10)
|
|||||||
position = Vector2(43, 96)
|
position = Vector2(43, 96)
|
||||||
script = ExtResource("1_like6")
|
script = ExtResource("1_like6")
|
||||||
velocity = 0.4
|
velocity = 0.4
|
||||||
area_size = Vector2(500, 150)
|
|
||||||
|
|
||||||
[node name="Node2D" type="Node2D" parent="."]
|
[node name="Node2D" type="Node2D" parent="."]
|
||||||
|
|
||||||
[node name="Sprite2D" type="Sprite2D" parent="Node2D"]
|
[node name="Sprite2D" type="Sprite2D" parent="Node2D"]
|
||||||
unique_name_in_owner = true
|
unique_name_in_owner = true
|
||||||
material = SubResource("ShaderMaterial_q4vn8")
|
material = SubResource("ShaderMaterial_q4vn8")
|
||||||
scale = Vector2(0.15, 0.15)
|
scale = Vector2(0.08, 0.08)
|
||||||
texture = ExtResource("3_dl751")
|
texture = ExtResource("3_dl751")
|
||||||
|
|
||||||
[node name="Sign" parent="Node2D" instance=ExtResource("4_5dshd")]
|
[node name="Sign" parent="Node2D" instance=ExtResource("4_5dshd")]
|
||||||
|
@ -51,7 +51,7 @@ script = ExtResource("1_c7y7r")
|
|||||||
|
|
||||||
[node name="AnimationPlayer" type="AnimationPlayer" parent="."]
|
[node name="AnimationPlayer" type="AnimationPlayer" parent="."]
|
||||||
libraries = {
|
libraries = {
|
||||||
"": SubResource("AnimationLibrary_0d65a")
|
&"": SubResource("AnimationLibrary_0d65a")
|
||||||
}
|
}
|
||||||
|
|
||||||
[node name="AnimationRoot" type="Control" parent="."]
|
[node name="AnimationRoot" type="Control" parent="."]
|
||||||
|
@ -32,8 +32,9 @@ func _ready() -> void:
|
|||||||
layer = GlobalConfig.CANVAS_LAYER_LITTLE_GAME
|
layer = GlobalConfig.CANVAS_LAYER_LITTLE_GAME
|
||||||
mode = 0
|
mode = 0
|
||||||
%ButtonPaperback.pressed.connect(_on_button_pressed.bind(1))
|
%ButtonPaperback.pressed.connect(_on_button_pressed.bind(1))
|
||||||
%ButtonLeft.pressed.connect(_on_button_pressed.bind(-1))
|
# 从右到左翻页,所以右侧-1,左侧+1
|
||||||
%ButtonRight.pressed.connect(_on_button_pressed.bind(1))
|
%ButtonLeft.pressed.connect(_on_button_pressed.bind(1))
|
||||||
|
%ButtonRight.pressed.connect(_on_button_pressed.bind(-1))
|
||||||
signature.finished.connect(finished.emit)
|
signature.finished.connect(finished.emit)
|
||||||
visibility_changed.connect(_on_visibility_changed)
|
visibility_changed.connect(_on_visibility_changed)
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user