胖子游戏完整优化
This commit is contained in:
parent
6a85f37e7b
commit
03dd736f4f
@ -3346,6 +3346,65 @@ animations = [{
|
|||||||
"speed": 5.0
|
"speed": 5.0
|
||||||
}, {
|
}, {
|
||||||
"frames": [{
|
"frames": [{
|
||||||
|
"duration": 3.0,
|
||||||
|
"texture": ExtResource("561_absvs")
|
||||||
|
}, {
|
||||||
|
"duration": 3.0,
|
||||||
|
"texture": ExtResource("562_d128g")
|
||||||
|
}, {
|
||||||
|
"duration": 3.0,
|
||||||
|
"texture": ExtResource("561_absvs")
|
||||||
|
}, {
|
||||||
|
"duration": 3.0,
|
||||||
|
"texture": ExtResource("563_3fx5s")
|
||||||
|
}, {
|
||||||
|
"duration": 3.0,
|
||||||
|
"texture": ExtResource("564_l13jo")
|
||||||
|
}, {
|
||||||
|
"duration": 1.0,
|
||||||
|
"texture": ExtResource("565_5fahj")
|
||||||
|
}, {
|
||||||
|
"duration": 1.0,
|
||||||
|
"texture": ExtResource("566_y2gjg")
|
||||||
|
}, {
|
||||||
|
"duration": 1.0,
|
||||||
|
"texture": ExtResource("567_ikcep")
|
||||||
|
}, {
|
||||||
|
"duration": 1.0,
|
||||||
|
"texture": ExtResource("568_8vhco")
|
||||||
|
}, {
|
||||||
|
"duration": 3.0,
|
||||||
|
"texture": ExtResource("569_2qsjy")
|
||||||
|
}, {
|
||||||
|
"duration": 3.0,
|
||||||
|
"texture": ExtResource("570_wpe64")
|
||||||
|
}, {
|
||||||
|
"duration": 3.0,
|
||||||
|
"texture": ExtResource("571_88ymt")
|
||||||
|
}, {
|
||||||
|
"duration": 1.0,
|
||||||
|
"texture": ExtResource("572_tnlrb")
|
||||||
|
}, {
|
||||||
|
"duration": 1.0,
|
||||||
|
"texture": ExtResource("573_f02eb")
|
||||||
|
}, {
|
||||||
|
"duration": 1.0,
|
||||||
|
"texture": ExtResource("574_fhnjb")
|
||||||
|
}, {
|
||||||
|
"duration": 1.0,
|
||||||
|
"texture": ExtResource("575_2byqq")
|
||||||
|
}, {
|
||||||
|
"duration": 1.0,
|
||||||
|
"texture": ExtResource("576_5rkx7")
|
||||||
|
}, {
|
||||||
|
"duration": 1.0,
|
||||||
|
"texture": ExtResource("577_y1k3y")
|
||||||
|
}],
|
||||||
|
"loop": false,
|
||||||
|
"name": &"c02_吕萍_背靠起身_屠宰间",
|
||||||
|
"speed": 5.0
|
||||||
|
}, {
|
||||||
|
"frames": [{
|
||||||
"duration": 1.0,
|
"duration": 1.0,
|
||||||
"texture": ExtResource("578_l4y1k")
|
"texture": ExtResource("578_l4y1k")
|
||||||
}, {
|
}, {
|
||||||
@ -4773,6 +4832,23 @@ animations = [{
|
|||||||
"speed": 5.0
|
"speed": 5.0
|
||||||
}, {
|
}, {
|
||||||
"frames": [{
|
"frames": [{
|
||||||
|
"duration": 8.0,
|
||||||
|
"texture": ExtResource("1009_3fbfp")
|
||||||
|
}, {
|
||||||
|
"duration": 3.0,
|
||||||
|
"texture": ExtResource("1010_ek4fg")
|
||||||
|
}, {
|
||||||
|
"duration": 1.0,
|
||||||
|
"texture": ExtResource("1019_3cpbr")
|
||||||
|
}, {
|
||||||
|
"duration": 1.0,
|
||||||
|
"texture": ExtResource("1020_4minp")
|
||||||
|
}],
|
||||||
|
"loop": false,
|
||||||
|
"name": &"c03_胖子游戏_爬起来",
|
||||||
|
"speed": 6.0
|
||||||
|
}, {
|
||||||
|
"frames": [{
|
||||||
"duration": 1.0,
|
"duration": 1.0,
|
||||||
"texture": ExtResource("1011_mi2dh")
|
"texture": ExtResource("1011_mi2dh")
|
||||||
}, {
|
}, {
|
||||||
|
@ -47,6 +47,7 @@ metadata/_edit_vertical_guides_ = [-15.0, -3.0]
|
|||||||
position = Vector2(0, -60)
|
position = Vector2(0, -60)
|
||||||
energy = 1.2
|
energy = 1.2
|
||||||
range_layer_min = -10
|
range_layer_min = -10
|
||||||
|
range_layer_max = 2
|
||||||
range_item_cull_mask = 15
|
range_item_cull_mask = 15
|
||||||
shadow_enabled = true
|
shadow_enabled = true
|
||||||
texture = SubResource("GradientTexture2D_gk3xo")
|
texture = SubResource("GradientTexture2D_gk3xo")
|
||||||
@ -57,6 +58,7 @@ height = 10.0
|
|||||||
position = Vector2(0, -60)
|
position = Vector2(0, -60)
|
||||||
energy = 0.0
|
energy = 0.0
|
||||||
range_layer_min = -10
|
range_layer_min = -10
|
||||||
|
range_layer_max = 2
|
||||||
range_item_cull_mask = 15
|
range_item_cull_mask = 15
|
||||||
shadow_enabled = true
|
shadow_enabled = true
|
||||||
texture = SubResource("GradientTexture2D_e2i85")
|
texture = SubResource("GradientTexture2D_e2i85")
|
||||||
|
@ -54,6 +54,7 @@ var ANIMATION_CONFIG = {
|
|||||||
# 第二章井边站起来
|
# 第二章井边站起来
|
||||||
19: [&"", Vector2.ONE, Vector2(2.5, -48.0), &"c02_吕萍_背靠起身", &""],
|
19: [&"", Vector2.ONE, Vector2(2.5, -48.0), &"c02_吕萍_背靠起身", &""],
|
||||||
20: [&"", Vector2.ONE, Vector2(2.5, -48.0), &"c02_吕萍_背靠呼吸", &""],
|
20: [&"", Vector2.ONE, Vector2(2.5, -48.0), &"c02_吕萍_背靠呼吸", &""],
|
||||||
|
21: [&"", Vector2.ONE, Vector2(2.5, -48.0), &"c02_吕萍_背靠起身_屠宰间", &""],
|
||||||
},
|
},
|
||||||
"吕萍爬行":
|
"吕萍爬行":
|
||||||
{
|
{
|
||||||
@ -196,7 +197,7 @@ var ANIMATION_CONFIG = {
|
|||||||
"walk_footstep": 0.5,
|
"walk_footstep": 0.5,
|
||||||
"run_footstep": 0.5,
|
"run_footstep": 0.5,
|
||||||
"os_height": 130.0,
|
"os_height": 130.0,
|
||||||
"light_height": 70.0,
|
"light_height": 50.0,
|
||||||
# 如果使用 auto,就会自动以最低点为基准
|
# 如果使用 auto,就会自动以最低点为基准
|
||||||
# "auto_foot_offset": true,
|
# "auto_foot_offset": true,
|
||||||
"foot_offset": Vector2(0, -51.0),
|
"foot_offset": Vector2(0, -51.0),
|
||||||
@ -208,6 +209,7 @@ var ANIMATION_CONFIG = {
|
|||||||
6: [&"c03_胖子游戏_洞里爬出来", Vector2.ONE, Vector2(-70, -44.5)],
|
6: [&"c03_胖子游戏_洞里爬出来", Vector2.ONE, Vector2(-70, -44.5)],
|
||||||
7: [&"", Vector2.ONE, Vector2(0, -51.0), &"", &"c03_胖子游戏_胖子对半砍"],
|
7: [&"", Vector2.ONE, Vector2(0, -51.0), &"", &"c03_胖子游戏_胖子对半砍"],
|
||||||
8: [&"", Vector2.ONE, Vector2(0, -51.0), &"", &"c03_胖子游戏_吃东西"],
|
8: [&"", Vector2.ONE, Vector2(0, -51.0), &"", &"c03_胖子游戏_吃东西"],
|
||||||
|
9: [&"", Vector2.ONE, Vector2(0, -108.0), &"", &"c03_胖子游戏_爬起来"],
|
||||||
},
|
},
|
||||||
"小小小蝶":
|
"小小小蝶":
|
||||||
{
|
{
|
||||||
|
@ -40,15 +40,18 @@ func _on_grinder_exited(_arg) -> void:
|
|||||||
|
|
||||||
|
|
||||||
func _transport_to_the_fatty_story() -> void:
|
func _transport_to_the_fatty_story() -> void:
|
||||||
|
_setup_monster_chopping()
|
||||||
SceneManager.get_camera_marker().shake_camera(3.0)
|
SceneManager.get_camera_marker().shake_camera(3.0)
|
||||||
SceneManager.lock_player()
|
SceneManager.lock_player()
|
||||||
await Util.wait(1.0)
|
|
||||||
SceneManager.dizzy_effect(3.0)
|
|
||||||
SceneManager.player_action(17, true)
|
|
||||||
Util.timer(1.0, _setup_monster_chopping)
|
|
||||||
await SceneManager.get_player().animation_finished
|
|
||||||
await Util.wait(2.0)
|
await Util.wait(2.0)
|
||||||
|
SceneManager.dizzy_effect(3.5)
|
||||||
|
SceneManager.player_action(17, true)
|
||||||
|
play("fatty_flash")
|
||||||
|
SceneManager.pop_debug_dialog_info("音效", "胖子闪烁")
|
||||||
|
await Util.wait(3.0)
|
||||||
SceneManager.unlock_player()
|
SceneManager.unlock_player()
|
||||||
|
SceneManager.black_transition(1.5, 3.0)
|
||||||
|
await Util.wait(3.0)
|
||||||
SceneManager.get_ground_loader().transition_to_scene("c03_s10", "left")
|
SceneManager.get_ground_loader().transition_to_scene("c03_s10", "left")
|
||||||
|
|
||||||
|
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
[gd_scene load_steps=30 format=3 uid="uid://c67732f2we13j"]
|
[gd_scene load_steps=35 format=3 uid="uid://c67732f2we13j"]
|
||||||
|
|
||||||
[ext_resource type="PackedScene" uid="uid://dayyx4jerj7io" path="res://scene/ground/ground.tscn" id="1_oxs1j"]
|
[ext_resource type="PackedScene" uid="uid://dayyx4jerj7io" path="res://scene/ground/ground.tscn" id="1_oxs1j"]
|
||||||
[ext_resource type="Script" uid="uid://dh5vxhnfnua3q" path="res://scene/ground/scene/c03/s07_屠宰间.gd" id="2_oxs1j"]
|
[ext_resource type="Script" uid="uid://dh5vxhnfnua3q" path="res://scene/ground/scene/c03/s07_屠宰间.gd" id="2_oxs1j"]
|
||||||
@ -28,8 +28,75 @@
|
|||||||
[ext_resource type="Texture2D" uid="uid://cylsq5cvhlp18" path="res://asset/art/tool/point_light.png" id="21_qeidq"]
|
[ext_resource type="Texture2D" uid="uid://cylsq5cvhlp18" path="res://asset/art/tool/point_light.png" id="21_qeidq"]
|
||||||
[ext_resource type="Script" uid="uid://deysfedtyjlig" path="res://scene/ground/script/c03/s07_event胖子游戏结束演出.gd" id="22_fuomw"]
|
[ext_resource type="Script" uid="uid://deysfedtyjlig" path="res://scene/ground/script/c03/s07_event胖子游戏结束演出.gd" id="22_fuomw"]
|
||||||
[ext_resource type="Script" uid="uid://cphfob11f7atx" path="res://addons/property-inspector/pro_animation_sprite2d/pro_animated_sprite.gd" id="23_u2kpr"]
|
[ext_resource type="Script" uid="uid://cphfob11f7atx" path="res://addons/property-inspector/pro_animation_sprite2d/pro_animated_sprite.gd" id="23_u2kpr"]
|
||||||
|
[ext_resource type="SpriteFrames" uid="uid://b7fhheih1hbvf" path="res://config/animation/entity_sprite_frames.tres" id="28_2kdsp"]
|
||||||
|
|
||||||
|
[sub_resource type="Animation" id="Animation_2kdsp"]
|
||||||
|
resource_name = "fatty_flash"
|
||||||
|
tracks/0/type = "value"
|
||||||
|
tracks/0/imported = false
|
||||||
|
tracks/0/enabled = true
|
||||||
|
tracks/0/path = NodePath("MainPlayer/Light胖子闪烁:color")
|
||||||
|
tracks/0/interp = 1
|
||||||
|
tracks/0/loop_wrap = true
|
||||||
|
tracks/0/keys = {
|
||||||
|
"times": PackedFloat32Array(0, 0.2, 0.266667, 0.366667, 0.433333, 0.633333, 0.7, 0.766667, 0.833333, 0.9),
|
||||||
|
"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1),
|
||||||
|
"update": 0,
|
||||||
|
"values": [Color(0, 0, 0, 1), Color(0, 0, 0, 1), Color(0.935194, 0.935194, 0.935194, 1), Color(1, 1, 1, 1), Color(0, 0, 0, 1), Color(0, 0, 0, 1), Color(1, 1, 1, 1), Color(0, 0, 0, 1), Color(1, 1, 1, 1), Color(0, 0, 0, 1)]
|
||||||
|
}
|
||||||
|
tracks/1/type = "value"
|
||||||
|
tracks/1/imported = false
|
||||||
|
tracks/1/enabled = true
|
||||||
|
tracks/1/path = NodePath("MainPlayer/胖子:modulate")
|
||||||
|
tracks/1/interp = 1
|
||||||
|
tracks/1/loop_wrap = true
|
||||||
|
tracks/1/keys = {
|
||||||
|
"times": PackedFloat32Array(0, 0.2, 0.366667, 0.433333, 0.633333, 0.7, 0.966667),
|
||||||
|
"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1, 1),
|
||||||
|
"update": 0,
|
||||||
|
"values": [Color(1, 1, 1, 0), Color(1, 1, 1, 0.494118), Color(1, 1, 1, 0.494118), Color(1, 1, 1, 0), Color(1, 1, 1, 0), Color(1, 1, 1, 0.494118), Color(1, 1, 1, 0)]
|
||||||
|
}
|
||||||
|
|
||||||
|
[sub_resource type="Animation" id="Animation_akd3f"]
|
||||||
|
length = 0.001
|
||||||
|
tracks/0/type = "value"
|
||||||
|
tracks/0/imported = false
|
||||||
|
tracks/0/enabled = true
|
||||||
|
tracks/0/path = NodePath("MainPlayer/Light胖子闪烁:color")
|
||||||
|
tracks/0/interp = 1
|
||||||
|
tracks/0/loop_wrap = true
|
||||||
|
tracks/0/keys = {
|
||||||
|
"times": PackedFloat32Array(0),
|
||||||
|
"transitions": PackedFloat32Array(1),
|
||||||
|
"update": 0,
|
||||||
|
"values": [Color(0, 0, 0, 1)]
|
||||||
|
}
|
||||||
|
tracks/1/type = "value"
|
||||||
|
tracks/1/imported = false
|
||||||
|
tracks/1/enabled = true
|
||||||
|
tracks/1/path = NodePath("MainPlayer/胖子:modulate")
|
||||||
|
tracks/1/interp = 1
|
||||||
|
tracks/1/loop_wrap = true
|
||||||
|
tracks/1/keys = {
|
||||||
|
"times": PackedFloat32Array(0),
|
||||||
|
"transitions": PackedFloat32Array(1),
|
||||||
|
"update": 0,
|
||||||
|
"values": [Color(1, 1, 1, 0)]
|
||||||
|
}
|
||||||
|
|
||||||
[sub_resource type="AnimationLibrary" id="AnimationLibrary_k01ve"]
|
[sub_resource type="AnimationLibrary" id="AnimationLibrary_k01ve"]
|
||||||
|
_data = {
|
||||||
|
&"RESET": SubResource("Animation_akd3f"),
|
||||||
|
&"fatty_flash": SubResource("Animation_2kdsp")
|
||||||
|
}
|
||||||
|
|
||||||
|
[sub_resource type="Gradient" id="Gradient_2kdsp"]
|
||||||
|
offsets = PackedFloat32Array(1)
|
||||||
|
colors = PackedColorArray(1, 1, 1, 1)
|
||||||
|
|
||||||
|
[sub_resource type="GradientTexture2D" id="GradientTexture2D_akd3f"]
|
||||||
|
gradient = SubResource("Gradient_2kdsp")
|
||||||
|
height = 128
|
||||||
|
|
||||||
[node name="S07" type="Node2D"]
|
[node name="S07" type="Node2D"]
|
||||||
metadata/_edit_horizontal_guides_ = [-627.0]
|
metadata/_edit_horizontal_guides_ = [-627.0]
|
||||||
@ -220,6 +287,21 @@ catty_light_energy = 0.5
|
|||||||
player_movement_rect = Rect2(18, -158, 714, 316)
|
player_movement_rect = Rect2(18, -158, 714, 316)
|
||||||
facing_direction = Vector2(1, 0)
|
facing_direction = Vector2(1, 0)
|
||||||
|
|
||||||
|
[node name="胖子" type="AnimatedSprite2D" parent="Ground/MainPlayer" index="6"]
|
||||||
|
modulate = Color(1, 1, 1, 0)
|
||||||
|
light_mask = 257
|
||||||
|
position = Vector2(-1, -56)
|
||||||
|
sprite_frames = ExtResource("28_2kdsp")
|
||||||
|
animation = &"c02_张胖子_idle"
|
||||||
|
autoplay = "c02_张胖子_idle"
|
||||||
|
|
||||||
|
[node name="Light胖子闪烁" type="PointLight2D" parent="Ground/MainPlayer" index="7"]
|
||||||
|
position = Vector2(-1, -48)
|
||||||
|
color = Color(0, 0, 0, 1)
|
||||||
|
blend_mode = 2
|
||||||
|
range_item_cull_mask = 256
|
||||||
|
texture = SubResource("GradientTexture2D_akd3f")
|
||||||
|
|
||||||
[node name="CameraFocusMarker" parent="Ground" index="6"]
|
[node name="CameraFocusMarker" parent="Ground" index="6"]
|
||||||
limit_right = 750
|
limit_right = 750
|
||||||
|
|
||||||
|
@ -4,7 +4,7 @@ extends AnimationRoot
|
|||||||
|
|
||||||
# 覆盖该方法
|
# 覆盖该方法
|
||||||
func _default_data() -> Dictionary:
|
func _default_data() -> Dictionary:
|
||||||
return {}
|
return {"has_entered": false}
|
||||||
|
|
||||||
|
|
||||||
func _ready() -> void:
|
func _ready() -> void:
|
||||||
@ -42,13 +42,23 @@ func _setup_node_reference() -> void:
|
|||||||
|
|
||||||
|
|
||||||
func _on_ground_ready() -> void:
|
func _on_ground_ready() -> void:
|
||||||
_enter_scene()
|
|
||||||
# 设置相机范围
|
# 设置相机范围
|
||||||
var right_x = player.player_movement_rect.size.x
|
var right_x = player.player_movement_rect.size.x
|
||||||
var rect := Rect2i(0, -158, int(right_x) + 200, 316)
|
var rect := Rect2i(0, -158, int(right_x) + 200, 316)
|
||||||
SceneManager.get_camera_marker().apply_limits(rect)
|
SceneManager.get_camera_marker().apply_limits(rect)
|
||||||
monster.before_restart.connect(_on_monster_restart)
|
monster.before_restart.connect(_on_monster_restart)
|
||||||
|
|
||||||
|
# 如果播放过,隐藏砍断文字 label
|
||||||
|
if $"../DeployLayer/AmbushLabel2".played:
|
||||||
|
$"../DeployLayer/砍断Pivot".hide()
|
||||||
|
|
||||||
|
var ambush3 = $"../DeployLayer/Ambush肉山3"
|
||||||
|
# 玩家最早从 ambush3 开始玩
|
||||||
|
player.global_position.x = min(player.global_position.x, ambush3.global_position.x)
|
||||||
|
|
||||||
|
if not data["has_entered"]:
|
||||||
|
_do_enter_scene()
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#0: 初始化; 1-3 三关
|
#0: 初始化; 1-3 三关
|
||||||
@ -79,18 +89,49 @@ func _on_chop_timer_timeout() -> void:
|
|||||||
aiming_duration = clampf(aiming_duration - 0.1, 2.0, 3.0)
|
aiming_duration = clampf(aiming_duration - 0.1, 2.0, 3.0)
|
||||||
chop_timer.wait_time = aiming_duration + 0.5
|
chop_timer.wait_time = aiming_duration + 0.5
|
||||||
monster.chop_right(aiming_duration)
|
monster.chop_right(aiming_duration)
|
||||||
var next_x = player_pos.x + player.velocity.x * aiming_duration + randf_range(0.0, 50.0)
|
_update_target_position()
|
||||||
monster_target.global_position.x = clampf(next_x, s_range.x, s_range.y)
|
Util.timer(0.5, _update_target_position)
|
||||||
await Util.wait(0.5)
|
Util.timer(1.0, _update_target_position)
|
||||||
next_x = player_pos.x + player.velocity.x * aiming_duration + randf_range(-20.0, 20.0)
|
Util.timer(1.5, _update_target_position)
|
||||||
monster_target.global_position.x = clampf(next_x, s_range.x, s_range.y)
|
|
||||||
await Util.wait(0.5)
|
|
||||||
next_x = player_pos.x + player.velocity.x * aiming_duration + randf_range(-20.0, 20.0)
|
|
||||||
monster_target.global_position.x = clampf(next_x, s_range.x, s_range.y)
|
|
||||||
if GlobalConfig.DEBUG:
|
if GlobalConfig.DEBUG:
|
||||||
print("棺材怪 chop next_x=", monster_target.global_position.x, "s_range=", s_range)
|
print("棺材怪 chop next_x=", monster_target.global_position.x, "s_range=", s_range)
|
||||||
|
|
||||||
|
|
||||||
|
func _update_target_position() -> void:
|
||||||
|
var player_pos = player.global_position
|
||||||
|
var next_x = player_pos.x + min(player.velocity.x * aiming_duration, 150.0) + randf_range(-20.0, 20.0)
|
||||||
|
var s_range = range_of_stages[current_stage - 1]
|
||||||
|
monster_target.global_position.x = clampf(next_x, s_range.x, s_range.y)
|
||||||
|
|
||||||
|
|
||||||
|
func _tween_display_label(node) -> void:
|
||||||
|
var label = node.get_node("Label")
|
||||||
|
label.modulate.a = 0.0
|
||||||
|
label.show()
|
||||||
|
var tween = create_tween()
|
||||||
|
tween.tween_property(label, "modulate:a", 1.0, 0.5)
|
||||||
|
tween.tween_interval(5.0)
|
||||||
|
tween.tween_property(label, "modulate:a", 0.0, 0.5)
|
||||||
|
|
||||||
|
|
||||||
|
func label_ambush1() -> void:
|
||||||
|
var ambush = $"../DeployLayer/AmbushLabel1"
|
||||||
|
_tween_display_label(ambush)
|
||||||
|
|
||||||
|
|
||||||
|
# 使用 AnimationPlayer 砍断文字
|
||||||
|
func label_ambush2() -> void:
|
||||||
|
SceneManager.lock_player()
|
||||||
|
play("chop_split_word")
|
||||||
|
await animation_finished
|
||||||
|
SceneManager.unlock_player()
|
||||||
|
|
||||||
|
|
||||||
|
func label_ambush3() -> void:
|
||||||
|
var ambush = $"../DeployLayer/AmbushLabel3"
|
||||||
|
_tween_display_label(ambush)
|
||||||
|
|
||||||
|
|
||||||
func drop_meat_hill_1() -> void:
|
func drop_meat_hill_1() -> void:
|
||||||
monster.hand_mode = 0
|
monster.hand_mode = 0
|
||||||
var ambush = $"../DeployLayer/Ambush肉山1"
|
var ambush = $"../DeployLayer/Ambush肉山1"
|
||||||
@ -146,6 +187,7 @@ func _on_monster_restart() -> void:
|
|||||||
|
|
||||||
const MEAT_MIN_DISTANCE = 100.0
|
const MEAT_MIN_DISTANCE = 100.0
|
||||||
|
|
||||||
|
|
||||||
# 天上掉肉
|
# 天上掉肉
|
||||||
func _drop_meat_hill() -> void:
|
func _drop_meat_hill() -> void:
|
||||||
var camera = SceneManager.get_camera_marker()
|
var camera = SceneManager.get_camera_marker()
|
||||||
@ -170,16 +212,14 @@ func _drop(progress: float, start_y: float, target_y: float) -> void:
|
|||||||
meat_hill.global_position.x = min(max_x, meat_hill.global_position.x)
|
meat_hill.global_position.x = min(max_x, meat_hill.global_position.x)
|
||||||
|
|
||||||
|
|
||||||
func _enter_scene() -> void:
|
func _do_enter_scene() -> void:
|
||||||
var portal_x = $"../DeployLayer/portal_left".global_position.x
|
var portal_x = $"../DeployLayer/portal_left".global_position.x
|
||||||
var player_x = player.global_position.x
|
|
||||||
if GlobalConfig.DEBUG and player_x > 100:
|
|
||||||
return
|
|
||||||
player.global_position.x = portal_x
|
player.global_position.x = portal_x
|
||||||
SceneManager.lock_player(0, 5, true)
|
SceneManager.lock_player(0, 5, true)
|
||||||
SceneManager.pause_and_hide_player_sprite(4.5)
|
SceneManager.pause_and_hide_player_sprite(4.5)
|
||||||
await player.animation_finished
|
await player.animation_finished
|
||||||
SceneManager.unlock_player()
|
SceneManager.unlock_player()
|
||||||
|
set_data("has_entered", true)
|
||||||
|
|
||||||
|
|
||||||
func _run_game() -> void:
|
func _run_game() -> void:
|
||||||
@ -191,3 +231,7 @@ func _run_game() -> void:
|
|||||||
monster.chop_left(1.0)
|
monster.chop_left(1.0)
|
||||||
await Util.wait(4.0)
|
await Util.wait(4.0)
|
||||||
monster.chop_right(1.0)
|
monster.chop_right(1.0)
|
||||||
|
|
||||||
|
func chop_shake() -> void:
|
||||||
|
var camera = SceneManager.get_camera_marker()
|
||||||
|
camera.shake_camera(4.0)
|
@ -1,4 +1,4 @@
|
|||||||
[gd_scene load_steps=38 format=3 uid="uid://clgwc3jcqarpe"]
|
[gd_scene load_steps=41 format=3 uid="uid://clgwc3jcqarpe"]
|
||||||
|
|
||||||
[ext_resource type="PackedScene" uid="uid://dayyx4jerj7io" path="res://scene/ground/ground.tscn" id="1_0c2p2"]
|
[ext_resource type="PackedScene" uid="uid://dayyx4jerj7io" path="res://scene/ground/ground.tscn" id="1_0c2p2"]
|
||||||
[ext_resource type="Script" uid="uid://cs4ddcjq81c1d" path="res://scene/ground/scene/c03/s10_胖子游戏1.gd" id="2_tthij"]
|
[ext_resource type="Script" uid="uid://cs4ddcjq81c1d" path="res://scene/ground/scene/c03/s10_胖子游戏1.gd" id="2_tthij"]
|
||||||
@ -32,8 +32,299 @@
|
|||||||
[ext_resource type="Texture2D" uid="uid://cylsq5cvhlp18" path="res://asset/art/tool/point_light.png" id="20_4gg56"]
|
[ext_resource type="Texture2D" uid="uid://cylsq5cvhlp18" path="res://asset/art/tool/point_light.png" id="20_4gg56"]
|
||||||
[ext_resource type="Texture2D" uid="uid://0qkxvm0xiubu" path="res://asset/art/gif/c03_胖子游戏/c03_胖子游戏第一段/落点2.png" id="20_whxhi"]
|
[ext_resource type="Texture2D" uid="uid://0qkxvm0xiubu" path="res://asset/art/gif/c03_胖子游戏/c03_胖子游戏第一段/落点2.png" id="20_whxhi"]
|
||||||
[ext_resource type="SpriteFrames" uid="uid://dy8b8dmgv3mdd" path="res://asset/art/gif/c03_胖子游戏/c03_胖子游戏第二段/c03_胖子游戏第二段_frames.tres" id="21_4bvrv"]
|
[ext_resource type="SpriteFrames" uid="uid://dy8b8dmgv3mdd" path="res://asset/art/gif/c03_胖子游戏/c03_胖子游戏第二段/c03_胖子游戏第二段_frames.tres" id="21_4bvrv"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://b7gyapghy3tsy" path="res://asset/art/neutral_point_light.png" id="22_v1flc"]
|
||||||
|
|
||||||
|
[sub_resource type="Animation" id="Animation_4bvrv"]
|
||||||
|
resource_name = "chop_split_word"
|
||||||
|
length = 4.0
|
||||||
|
capture_included = true
|
||||||
|
tracks/0/type = "value"
|
||||||
|
tracks/0/imported = false
|
||||||
|
tracks/0/enabled = true
|
||||||
|
tracks/0/path = NodePath("DeployLayer/砍断文字的手:animation")
|
||||||
|
tracks/0/interp = 1
|
||||||
|
tracks/0/loop_wrap = true
|
||||||
|
tracks/0/keys = {
|
||||||
|
"times": PackedFloat32Array(0),
|
||||||
|
"transitions": PackedFloat32Array(1),
|
||||||
|
"update": 1,
|
||||||
|
"values": [&"左手砍"]
|
||||||
|
}
|
||||||
|
tracks/1/type = "value"
|
||||||
|
tracks/1/imported = false
|
||||||
|
tracks/1/enabled = true
|
||||||
|
tracks/1/path = NodePath("DeployLayer/砍断文字的手:position")
|
||||||
|
tracks/1/interp = 2
|
||||||
|
tracks/1/loop_wrap = true
|
||||||
|
tracks/1/keys = {
|
||||||
|
"times": PackedFloat32Array(0, 2.03333, 2.2, 2.3, 2.36667, 2.93333, 3, 4),
|
||||||
|
"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1, 1, 1),
|
||||||
|
"update": 0,
|
||||||
|
"values": [Vector2(1566, -284), Vector2(1566, -284), Vector2(1566, -100), Vector2(1566, -17), Vector2(1566, -17), Vector2(1566, -17), Vector2(1566, -17), Vector2(1566, -300)]
|
||||||
|
}
|
||||||
|
tracks/2/type = "value"
|
||||||
|
tracks/2/imported = false
|
||||||
|
tracks/2/enabled = true
|
||||||
|
tracks/2/path = NodePath("DeployLayer/砍断文字的手:frame")
|
||||||
|
tracks/2/interp = 1
|
||||||
|
tracks/2/loop_wrap = true
|
||||||
|
tracks/2/keys = {
|
||||||
|
"times": PackedFloat32Array(0, 2.26667, 2.43333),
|
||||||
|
"transitions": PackedFloat32Array(1, 1, 1),
|
||||||
|
"update": 2,
|
||||||
|
"values": [0, 0, 2]
|
||||||
|
}
|
||||||
|
tracks/3/type = "value"
|
||||||
|
tracks/3/imported = false
|
||||||
|
tracks/3/enabled = true
|
||||||
|
tracks/3/path = NodePath("DeployLayer/砍断Pivot/被砍断的文字1:position")
|
||||||
|
tracks/3/interp = 1
|
||||||
|
tracks/3/loop_wrap = true
|
||||||
|
tracks/3/keys = {
|
||||||
|
"times": PackedFloat32Array(0.0333333, 2.2, 2.23333, 2.46667, 2.6),
|
||||||
|
"transitions": PackedFloat32Array(1, 1, 1, 1, 1),
|
||||||
|
"update": 0,
|
||||||
|
"values": [Vector2(-206, -18), Vector2(-206, -18), Vector2(-224, 12), Vector2(-233, 189), Vector2(-169, 338)]
|
||||||
|
}
|
||||||
|
tracks/4/type = "value"
|
||||||
|
tracks/4/imported = false
|
||||||
|
tracks/4/enabled = true
|
||||||
|
tracks/4/path = NodePath("DeployLayer/砍断Pivot/被砍断的文字1:rotation")
|
||||||
|
tracks/4/interp = 1
|
||||||
|
tracks/4/loop_wrap = true
|
||||||
|
tracks/4/keys = {
|
||||||
|
"times": PackedFloat32Array(0.0333333, 2.2, 2.23333, 2.46667, 2.6),
|
||||||
|
"transitions": PackedFloat32Array(1, 1, 1, 1, 1),
|
||||||
|
"update": 0,
|
||||||
|
"values": [0.0, 0.0, -0.13036, -0.88622, -1.55322]
|
||||||
|
}
|
||||||
|
tracks/5/type = "value"
|
||||||
|
tracks/5/imported = false
|
||||||
|
tracks/5/enabled = true
|
||||||
|
tracks/5/path = NodePath("DeployLayer/砍断Pivot/被砍断的文字2:rotation")
|
||||||
|
tracks/5/interp = 1
|
||||||
|
tracks/5/loop_wrap = true
|
||||||
|
tracks/5/keys = {
|
||||||
|
"times": PackedFloat32Array(0.0333333, 2.2, 2.23333, 2.46667, 2.63333),
|
||||||
|
"transitions": PackedFloat32Array(1, 1, 1, 1, 1),
|
||||||
|
"update": 0,
|
||||||
|
"values": [0.0, 0.0, 0.139331, 1.32286, 1.9148]
|
||||||
|
}
|
||||||
|
tracks/6/type = "value"
|
||||||
|
tracks/6/imported = false
|
||||||
|
tracks/6/enabled = true
|
||||||
|
tracks/6/path = NodePath("DeployLayer/砍断Pivot/被砍断的文字2:position")
|
||||||
|
tracks/6/interp = 1
|
||||||
|
tracks/6/loop_wrap = true
|
||||||
|
tracks/6/keys = {
|
||||||
|
"times": PackedFloat32Array(0.0333333, 2.2, 2.23333, 2.46667, 2.63333),
|
||||||
|
"transitions": PackedFloat32Array(1, 1, 1, 1, 1),
|
||||||
|
"update": 0,
|
||||||
|
"values": [Vector2(4, -17), Vector2(4, -17), Vector2(15, -14), Vector2(69, 35), Vector2(152, 146)]
|
||||||
|
}
|
||||||
|
tracks/7/type = "value"
|
||||||
|
tracks/7/imported = false
|
||||||
|
tracks/7/enabled = true
|
||||||
|
tracks/7/path = NodePath("DeployLayer/砍断文字的落点:scale")
|
||||||
|
tracks/7/interp = 1
|
||||||
|
tracks/7/loop_wrap = true
|
||||||
|
tracks/7/keys = {
|
||||||
|
"times": PackedFloat32Array(0, 1.73333, 2.5, 3.13333, 3.76667),
|
||||||
|
"transitions": PackedFloat32Array(1, 1, 1, 1, 1),
|
||||||
|
"update": 0,
|
||||||
|
"values": [Vector2(1e-05, 1e-05), Vector2(0.8, 0.8), Vector2(1, 1), Vector2(1, 1), Vector2(0, 0)]
|
||||||
|
}
|
||||||
|
tracks/8/type = "value"
|
||||||
|
tracks/8/imported = false
|
||||||
|
tracks/8/enabled = true
|
||||||
|
tracks/8/path = NodePath("CanvasLayer/胖子游戏棺材怪/Sfx2D棺材怪切刀:playing")
|
||||||
|
tracks/8/interp = 1
|
||||||
|
tracks/8/loop_wrap = true
|
||||||
|
tracks/8/keys = {
|
||||||
|
"times": PackedFloat32Array(2.36667),
|
||||||
|
"transitions": PackedFloat32Array(1),
|
||||||
|
"update": 1,
|
||||||
|
"values": [true]
|
||||||
|
}
|
||||||
|
tracks/9/type = "value"
|
||||||
|
tracks/9/imported = false
|
||||||
|
tracks/9/enabled = true
|
||||||
|
tracks/9/path = NodePath("DeployLayer/砍断Pivot/被砍断的文字1:modulate")
|
||||||
|
tracks/9/interp = 1
|
||||||
|
tracks/9/loop_wrap = true
|
||||||
|
tracks/9/keys = {
|
||||||
|
"times": PackedFloat32Array(2.13654, 2.46667),
|
||||||
|
"transitions": PackedFloat32Array(1, 1),
|
||||||
|
"update": 0,
|
||||||
|
"values": [Color(1, 1, 1, 1), Color(1, 1, 1, 0)]
|
||||||
|
}
|
||||||
|
tracks/10/type = "value"
|
||||||
|
tracks/10/imported = false
|
||||||
|
tracks/10/enabled = true
|
||||||
|
tracks/10/path = NodePath("DeployLayer/砍断Pivot/被砍断的文字2:modulate")
|
||||||
|
tracks/10/interp = 1
|
||||||
|
tracks/10/loop_wrap = true
|
||||||
|
tracks/10/keys = {
|
||||||
|
"times": PackedFloat32Array(2.13654, 2.46667),
|
||||||
|
"transitions": PackedFloat32Array(1, 1),
|
||||||
|
"update": 0,
|
||||||
|
"values": [Color(1, 1, 1, 1), Color(1, 1, 1, 0)]
|
||||||
|
}
|
||||||
|
tracks/11/type = "method"
|
||||||
|
tracks/11/imported = false
|
||||||
|
tracks/11/enabled = true
|
||||||
|
tracks/11/path = NodePath("AnimationPlayer")
|
||||||
|
tracks/11/interp = 1
|
||||||
|
tracks/11/loop_wrap = true
|
||||||
|
tracks/11/keys = {
|
||||||
|
"times": PackedFloat32Array(2.33333),
|
||||||
|
"transitions": PackedFloat32Array(1),
|
||||||
|
"values": [{
|
||||||
|
"args": [],
|
||||||
|
"method": &"chop_shake"
|
||||||
|
}]
|
||||||
|
}
|
||||||
|
|
||||||
|
[sub_resource type="Animation" id="Animation_v1flc"]
|
||||||
|
length = 0.001
|
||||||
|
tracks/0/type = "value"
|
||||||
|
tracks/0/imported = false
|
||||||
|
tracks/0/enabled = true
|
||||||
|
tracks/0/path = NodePath("DeployLayer/砍断文字的手:animation")
|
||||||
|
tracks/0/interp = 1
|
||||||
|
tracks/0/loop_wrap = true
|
||||||
|
tracks/0/keys = {
|
||||||
|
"times": PackedFloat32Array(0),
|
||||||
|
"transitions": PackedFloat32Array(1),
|
||||||
|
"update": 1,
|
||||||
|
"values": [&"左手砍"]
|
||||||
|
}
|
||||||
|
tracks/1/type = "value"
|
||||||
|
tracks/1/imported = false
|
||||||
|
tracks/1/enabled = true
|
||||||
|
tracks/1/path = NodePath("DeployLayer/砍断文字的手:position")
|
||||||
|
tracks/1/interp = 1
|
||||||
|
tracks/1/loop_wrap = true
|
||||||
|
tracks/1/keys = {
|
||||||
|
"times": PackedFloat32Array(0),
|
||||||
|
"transitions": PackedFloat32Array(1),
|
||||||
|
"update": 0,
|
||||||
|
"values": [Vector2(1566, -284)]
|
||||||
|
}
|
||||||
|
tracks/2/type = "value"
|
||||||
|
tracks/2/imported = false
|
||||||
|
tracks/2/enabled = true
|
||||||
|
tracks/2/path = NodePath("DeployLayer/砍断文字的手:frame")
|
||||||
|
tracks/2/interp = 1
|
||||||
|
tracks/2/loop_wrap = true
|
||||||
|
tracks/2/keys = {
|
||||||
|
"times": PackedFloat32Array(0),
|
||||||
|
"transitions": PackedFloat32Array(1),
|
||||||
|
"update": 1,
|
||||||
|
"values": [0]
|
||||||
|
}
|
||||||
|
tracks/3/type = "value"
|
||||||
|
tracks/3/imported = false
|
||||||
|
tracks/3/enabled = true
|
||||||
|
tracks/3/path = NodePath("DeployLayer/砍断Pivot/被砍断的文字1:position")
|
||||||
|
tracks/3/interp = 1
|
||||||
|
tracks/3/loop_wrap = true
|
||||||
|
tracks/3/keys = {
|
||||||
|
"times": PackedFloat32Array(0),
|
||||||
|
"transitions": PackedFloat32Array(1),
|
||||||
|
"update": 0,
|
||||||
|
"values": [Vector2(-206, -18)]
|
||||||
|
}
|
||||||
|
tracks/4/type = "value"
|
||||||
|
tracks/4/imported = false
|
||||||
|
tracks/4/enabled = true
|
||||||
|
tracks/4/path = NodePath("DeployLayer/砍断Pivot/被砍断的文字1:rotation")
|
||||||
|
tracks/4/interp = 1
|
||||||
|
tracks/4/loop_wrap = true
|
||||||
|
tracks/4/keys = {
|
||||||
|
"times": PackedFloat32Array(0),
|
||||||
|
"transitions": PackedFloat32Array(1),
|
||||||
|
"update": 0,
|
||||||
|
"values": [0.0]
|
||||||
|
}
|
||||||
|
tracks/5/type = "value"
|
||||||
|
tracks/5/imported = false
|
||||||
|
tracks/5/enabled = true
|
||||||
|
tracks/5/path = NodePath("DeployLayer/砍断Pivot/被砍断的文字2:rotation")
|
||||||
|
tracks/5/interp = 1
|
||||||
|
tracks/5/loop_wrap = true
|
||||||
|
tracks/5/keys = {
|
||||||
|
"times": PackedFloat32Array(0),
|
||||||
|
"transitions": PackedFloat32Array(1),
|
||||||
|
"update": 0,
|
||||||
|
"values": [0.0]
|
||||||
|
}
|
||||||
|
tracks/6/type = "value"
|
||||||
|
tracks/6/imported = false
|
||||||
|
tracks/6/enabled = true
|
||||||
|
tracks/6/path = NodePath("DeployLayer/砍断Pivot/被砍断的文字2:position")
|
||||||
|
tracks/6/interp = 1
|
||||||
|
tracks/6/loop_wrap = true
|
||||||
|
tracks/6/keys = {
|
||||||
|
"times": PackedFloat32Array(0),
|
||||||
|
"transitions": PackedFloat32Array(1),
|
||||||
|
"update": 0,
|
||||||
|
"values": [Vector2(4, -17)]
|
||||||
|
}
|
||||||
|
tracks/7/type = "value"
|
||||||
|
tracks/7/imported = false
|
||||||
|
tracks/7/enabled = true
|
||||||
|
tracks/7/path = NodePath("DeployLayer/砍断文字的落点:scale")
|
||||||
|
tracks/7/interp = 1
|
||||||
|
tracks/7/loop_wrap = true
|
||||||
|
tracks/7/keys = {
|
||||||
|
"times": PackedFloat32Array(0),
|
||||||
|
"transitions": PackedFloat32Array(1),
|
||||||
|
"update": 0,
|
||||||
|
"values": [Vector2(1e-05, 1e-05)]
|
||||||
|
}
|
||||||
|
tracks/8/type = "value"
|
||||||
|
tracks/8/imported = false
|
||||||
|
tracks/8/enabled = true
|
||||||
|
tracks/8/path = NodePath("CanvasLayer/胖子游戏棺材怪/Sfx2D棺材怪切刀:playing")
|
||||||
|
tracks/8/interp = 1
|
||||||
|
tracks/8/loop_wrap = true
|
||||||
|
tracks/8/keys = {
|
||||||
|
"times": PackedFloat32Array(0),
|
||||||
|
"transitions": PackedFloat32Array(1),
|
||||||
|
"update": 1,
|
||||||
|
"values": [false]
|
||||||
|
}
|
||||||
|
tracks/9/type = "value"
|
||||||
|
tracks/9/imported = false
|
||||||
|
tracks/9/enabled = true
|
||||||
|
tracks/9/path = NodePath("DeployLayer/砍断Pivot/被砍断的文字1:modulate")
|
||||||
|
tracks/9/interp = 1
|
||||||
|
tracks/9/loop_wrap = true
|
||||||
|
tracks/9/keys = {
|
||||||
|
"times": PackedFloat32Array(0),
|
||||||
|
"transitions": PackedFloat32Array(1),
|
||||||
|
"update": 0,
|
||||||
|
"values": [Color(1, 1, 1, 1)]
|
||||||
|
}
|
||||||
|
tracks/10/type = "value"
|
||||||
|
tracks/10/imported = false
|
||||||
|
tracks/10/enabled = true
|
||||||
|
tracks/10/path = NodePath("DeployLayer/砍断Pivot/被砍断的文字2:modulate")
|
||||||
|
tracks/10/interp = 1
|
||||||
|
tracks/10/loop_wrap = true
|
||||||
|
tracks/10/keys = {
|
||||||
|
"times": PackedFloat32Array(0),
|
||||||
|
"transitions": PackedFloat32Array(1),
|
||||||
|
"update": 0,
|
||||||
|
"values": [Color(1, 1, 1, 1)]
|
||||||
|
}
|
||||||
|
|
||||||
[sub_resource type="AnimationLibrary" id="AnimationLibrary_k01ve"]
|
[sub_resource type="AnimationLibrary" id="AnimationLibrary_k01ve"]
|
||||||
|
_data = {
|
||||||
|
&"RESET": SubResource("Animation_v1flc"),
|
||||||
|
&"chop_split_word": SubResource("Animation_4bvrv")
|
||||||
|
}
|
||||||
|
|
||||||
[sub_resource type="CapsuleShape2D" id="CapsuleShape2D_2wy2j"]
|
[sub_resource type="CapsuleShape2D" id="CapsuleShape2D_2wy2j"]
|
||||||
radius = 20.0
|
radius = 20.0
|
||||||
@ -58,6 +349,7 @@ stream_3/stream = ExtResource("10_js8ld")
|
|||||||
|
|
||||||
[node name="S10" type="Node2D"]
|
[node name="S10" type="Node2D"]
|
||||||
metadata/_edit_horizontal_guides_ = [98.0, 120.0, -120.0]
|
metadata/_edit_horizontal_guides_ = [98.0, 120.0, -120.0]
|
||||||
|
metadata/_edit_vertical_guides_ = [1564.0]
|
||||||
|
|
||||||
[node name="Ground" parent="." instance=ExtResource("1_0c2p2")]
|
[node name="Ground" parent="." instance=ExtResource("1_0c2p2")]
|
||||||
scene_name = "c03_s10"
|
scene_name = "c03_s10"
|
||||||
@ -106,7 +398,7 @@ texture = ExtResource("17_f57cq")
|
|||||||
position = Vector2(202, 15)
|
position = Vector2(202, 15)
|
||||||
|
|
||||||
[node name="portal_right" parent="Ground/DeployLayer" index="1"]
|
[node name="portal_right" parent="Ground/DeployLayer" index="1"]
|
||||||
position = Vector2(8170, 31)
|
position = Vector2(8914, 30.5)
|
||||||
texture = ExtResource("8_o5hrx")
|
texture = ExtResource("8_o5hrx")
|
||||||
offset = Vector2(65, -59)
|
offset = Vector2(65, -59)
|
||||||
sign_mark_offset = Vector2(0, -28.54)
|
sign_mark_offset = Vector2(0, -28.54)
|
||||||
@ -125,12 +417,12 @@ animation = &"胖子的母亲"
|
|||||||
autoplay = "胖子的母亲"
|
autoplay = "胖子的母亲"
|
||||||
|
|
||||||
[node name="落点左" type="Sprite2D" parent="Ground/DeployLayer" index="3"]
|
[node name="落点左" type="Sprite2D" parent="Ground/DeployLayer" index="3"]
|
||||||
position = Vector2(1582, 98)
|
position = Vector2(3126, 97.5)
|
||||||
scale = Vector2(1e-05, 1e-05)
|
scale = Vector2(1e-05, 1e-05)
|
||||||
texture = ExtResource("18_js8ld")
|
texture = ExtResource("18_js8ld")
|
||||||
|
|
||||||
[node name="左侧手" type="AnimatedSprite2D" parent="Ground/DeployLayer" index="4"]
|
[node name="左侧手" type="AnimatedSprite2D" parent="Ground/DeployLayer" index="4"]
|
||||||
position = Vector2(1582, -317)
|
position = Vector2(3126, -317.5)
|
||||||
sprite_frames = ExtResource("16_f57cq")
|
sprite_frames = ExtResource("16_f57cq")
|
||||||
animation = &"左手砍"
|
animation = &"左手砍"
|
||||||
offset = Vector2(-11, -13)
|
offset = Vector2(-11, -13)
|
||||||
@ -155,12 +447,12 @@ shape = SubResource("CapsuleShape2D_whxhi")
|
|||||||
disabled = true
|
disabled = true
|
||||||
|
|
||||||
[node name="落点右" type="Sprite2D" parent="Ground/DeployLayer" index="5"]
|
[node name="落点右" type="Sprite2D" parent="Ground/DeployLayer" index="5"]
|
||||||
position = Vector2(2158, 98)
|
position = Vector2(3702, 97.5)
|
||||||
scale = Vector2(1e-05, 1e-05)
|
scale = Vector2(1e-05, 1e-05)
|
||||||
texture = ExtResource("20_whxhi")
|
texture = ExtResource("20_whxhi")
|
||||||
|
|
||||||
[node name="右侧手" type="AnimatedSprite2D" parent="Ground/DeployLayer" index="6"]
|
[node name="右侧手" type="AnimatedSprite2D" parent="Ground/DeployLayer" index="6"]
|
||||||
position = Vector2(2158, -317)
|
position = Vector2(3702, -317.5)
|
||||||
sprite_frames = ExtResource("16_f57cq")
|
sprite_frames = ExtResource("16_f57cq")
|
||||||
animation = &"右手砍"
|
animation = &"右手砍"
|
||||||
offset = Vector2(9, -12)
|
offset = Vector2(9, -12)
|
||||||
@ -185,10 +477,10 @@ shape = SubResource("CapsuleShape2D_whxhi")
|
|||||||
disabled = true
|
disabled = true
|
||||||
|
|
||||||
[node name="MonsterMoveTarget" type="Marker2D" parent="Ground/DeployLayer" index="7"]
|
[node name="MonsterMoveTarget" type="Marker2D" parent="Ground/DeployLayer" index="7"]
|
||||||
position = Vector2(1646, -1)
|
position = Vector2(2061, -1)
|
||||||
|
|
||||||
[node name="肉山" type="AnimatableBody2D" parent="Ground/DeployLayer" index="8"]
|
[node name="肉山" type="AnimatableBody2D" parent="Ground/DeployLayer" index="8"]
|
||||||
position = Vector2(162, -421)
|
position = Vector2(-308, -591)
|
||||||
collision_layer = 2
|
collision_layer = 2
|
||||||
collision_mask = 0
|
collision_mask = 0
|
||||||
|
|
||||||
@ -222,54 +514,61 @@ position = Vector2(-19, -38)
|
|||||||
shape = SubResource("CircleShape2D_lljm3")
|
shape = SubResource("CircleShape2D_lljm3")
|
||||||
|
|
||||||
[node name="肉山Transform" type="RemoteTransform2D" parent="Ground/DeployLayer" index="9"]
|
[node name="肉山Transform" type="RemoteTransform2D" parent="Ground/DeployLayer" index="9"]
|
||||||
position = Vector2(162, -421)
|
position = Vector2(-308, -591)
|
||||||
remote_path = NodePath("../肉山")
|
remote_path = NodePath("../肉山")
|
||||||
update_rotation = false
|
update_rotation = false
|
||||||
update_scale = false
|
update_scale = false
|
||||||
|
|
||||||
[node name="Ambush肉山1" parent="Ground/DeployLayer" index="10" instance=ExtResource("11_lljm3")]
|
[node name="Ambush肉山1" parent="Ground/DeployLayer" index="10" instance=ExtResource("11_lljm3")]
|
||||||
position = Vector2(1238, -3)
|
position = Vector2(1982, -3.5)
|
||||||
one_shot = false
|
one_shot = false
|
||||||
hook_method = "drop_meat_hill_1"
|
hook_method = "drop_meat_hill_1"
|
||||||
|
|
||||||
[node name="Start1" type="Marker2D" parent="Ground/DeployLayer" index="11"]
|
[node name="Start1" type="Marker2D" parent="Ground/DeployLayer" index="11"]
|
||||||
position = Vector2(1261, -2)
|
position = Vector2(2005, -2.5)
|
||||||
|
|
||||||
[node name="End1" type="Marker2D" parent="Ground/DeployLayer" index="12"]
|
[node name="End1" type="Marker2D" parent="Ground/DeployLayer" index="12"]
|
||||||
position = Vector2(1926, -3)
|
position = Vector2(2676, -2)
|
||||||
|
|
||||||
[node name="Ambush肉山2" parent="Ground/DeployLayer" index="13" instance=ExtResource("11_lljm3")]
|
[node name="Ambush肉山2" parent="Ground/DeployLayer" index="13" instance=ExtResource("11_lljm3")]
|
||||||
position = Vector2(2078, -8)
|
position = Vector2(2828, -7)
|
||||||
one_shot = false
|
one_shot = false
|
||||||
hook_method = "drop_meat_hill_2"
|
hook_method = "drop_meat_hill_2"
|
||||||
|
|
||||||
[node name="Start2" type="Marker2D" parent="Ground/DeployLayer" index="14"]
|
[node name="Start2" type="Marker2D" parent="Ground/DeployLayer" index="14"]
|
||||||
position = Vector2(2145, -11)
|
position = Vector2(2895, -10)
|
||||||
|
|
||||||
[node name="End2" type="Marker2D" parent="Ground/DeployLayer" index="15"]
|
[node name="End2" type="Marker2D" parent="Ground/DeployLayer" index="15"]
|
||||||
position = Vector2(4128, -16)
|
position = Vector2(5259, -7)
|
||||||
|
|
||||||
[node name="Ambush肉山3" parent="Ground/DeployLayer" index="16" instance=ExtResource("11_lljm3")]
|
[node name="Ambush肉山3" parent="Ground/DeployLayer" index="16" instance=ExtResource("11_lljm3")]
|
||||||
position = Vector2(4337, -13)
|
position = Vector2(5468, -4)
|
||||||
one_shot = false
|
one_shot = false
|
||||||
hook_method = "drop_meat_hill_3"
|
hook_method = "drop_meat_hill_3"
|
||||||
|
|
||||||
[node name="Start3" type="Marker2D" parent="Ground/DeployLayer" index="17"]
|
[node name="Start3" type="Marker2D" parent="Ground/DeployLayer" index="17"]
|
||||||
position = Vector2(4562, -10)
|
position = Vector2(5693, -1)
|
||||||
|
|
||||||
[node name="End3" type="Marker2D" parent="Ground/DeployLayer" index="18"]
|
[node name="End3" type="Marker2D" parent="Ground/DeployLayer" index="18"]
|
||||||
position = Vector2(7618, 9)
|
position = Vector2(7860, -1)
|
||||||
|
|
||||||
[node name="ChopTimer" type="Timer" parent="Ground/DeployLayer" index="19"]
|
[node name="ChopTimer" type="Timer" parent="Ground/DeployLayer" index="19"]
|
||||||
wait_time = 2.5
|
wait_time = 2.5
|
||||||
autostart = true
|
autostart = true
|
||||||
|
|
||||||
[node name="老太太文字" type="RichTextLabel" parent="Ground/DeployLayer" index="20"]
|
[node name="AmbushLabel1" parent="Ground/DeployLayer" index="20" instance=ExtResource("11_lljm3")]
|
||||||
|
position = Vector2(591, 51)
|
||||||
|
hook_method = "label_ambush1"
|
||||||
|
|
||||||
|
[node name="Label" type="RichTextLabel" parent="Ground/DeployLayer/AmbushLabel1"]
|
||||||
|
visible = false
|
||||||
|
z_index = 6
|
||||||
custom_minimum_size = Vector2(1000, 0)
|
custom_minimum_size = Vector2(1000, 0)
|
||||||
offset_left = 126.0
|
offset_left = -263.0
|
||||||
offset_top = -70.0
|
offset_top = -53.0
|
||||||
offset_right = 1126.0
|
offset_right = 737.0
|
||||||
offset_bottom = -29.0
|
offset_bottom = -12.0
|
||||||
|
mouse_filter = 2
|
||||||
theme_override_colors/default_color = Color(1, 0, 0, 1)
|
theme_override_colors/default_color = Color(1, 0, 0, 1)
|
||||||
theme_override_fonts/normal_font = ExtResource("19_usr2w")
|
theme_override_fonts/normal_font = ExtResource("19_usr2w")
|
||||||
theme_override_font_sizes/normal_font_size = 40
|
theme_override_font_sizes/normal_font_size = 40
|
||||||
@ -279,21 +578,43 @@ fit_content = true
|
|||||||
scroll_active = false
|
scroll_active = false
|
||||||
horizontal_alignment = 1
|
horizontal_alignment = 1
|
||||||
|
|
||||||
[node name="Control" type="Control" parent="Ground/DeployLayer" index="21"]
|
[node name="AmbushLabel2" parent="Ground/DeployLayer" index="21" instance=ExtResource("11_lljm3")]
|
||||||
|
position = Vector2(1442, 42)
|
||||||
|
hook_method = "label_ambush2"
|
||||||
|
|
||||||
|
[node name="砍断文字的手" type="AnimatedSprite2D" parent="Ground/DeployLayer" index="22"]
|
||||||
|
z_index = 6
|
||||||
|
position = Vector2(1566, -284)
|
||||||
|
sprite_frames = ExtResource("16_f57cq")
|
||||||
|
animation = &"左手砍"
|
||||||
|
offset = Vector2(-11, -13)
|
||||||
|
|
||||||
|
[node name="砍断文字的落点" type="Sprite2D" parent="Ground/DeployLayer" index="23"]
|
||||||
|
position = Vector2(1564, 98)
|
||||||
|
scale = Vector2(1e-05, 1e-05)
|
||||||
|
texture = ExtResource("18_js8ld")
|
||||||
|
|
||||||
|
[node name="砍断Pivot" type="Control" parent="Ground/DeployLayer" index="24"]
|
||||||
layout_mode = 3
|
layout_mode = 3
|
||||||
anchors_preset = 0
|
anchors_preset = 0
|
||||||
offset_left = 1563.0
|
offset_left = 1564.0
|
||||||
offset_top = -47.0
|
offset_right = 1604.0
|
||||||
offset_right = 1603.0
|
offset_bottom = 40.0
|
||||||
offset_bottom = -7.0
|
mouse_filter = 2
|
||||||
|
|
||||||
[node name="被砍断的文字1" type="RichTextLabel" parent="Ground/DeployLayer/Control"]
|
[node name="被砍断的文字1" type="RichTextLabel" parent="Ground/DeployLayer/砍断Pivot"]
|
||||||
custom_minimum_size = Vector2(200, 0)
|
custom_minimum_size = Vector2(200, 0)
|
||||||
layout_mode = 0
|
layout_mode = 1
|
||||||
offset_left = -206.0
|
anchors_preset = -1
|
||||||
offset_top = -18.0
|
anchor_left = 0.525
|
||||||
offset_right = -6.0
|
anchor_top = 9.475
|
||||||
offset_bottom = 23.0
|
anchor_right = 0.525
|
||||||
|
anchor_bottom = 9.475
|
||||||
|
offset_left = -249.587
|
||||||
|
offset_top = -276.792
|
||||||
|
offset_right = -49.5868
|
||||||
|
offset_bottom = -235.792
|
||||||
|
mouse_filter = 2
|
||||||
theme_override_colors/default_color = Color(1, 0, 0, 1)
|
theme_override_colors/default_color = Color(1, 0, 0, 1)
|
||||||
theme_override_fonts/normal_font = ExtResource("19_usr2w")
|
theme_override_fonts/normal_font = ExtResource("19_usr2w")
|
||||||
theme_override_font_sizes/normal_font_size = 40
|
theme_override_font_sizes/normal_font_size = 40
|
||||||
@ -302,15 +623,15 @@ text = "[wave]活[/wave]"
|
|||||||
fit_content = true
|
fit_content = true
|
||||||
scroll_active = false
|
scroll_active = false
|
||||||
horizontal_alignment = 2
|
horizontal_alignment = 2
|
||||||
metadata/_edit_use_anchors_ = true
|
|
||||||
|
|
||||||
[node name="被砍断的文字2" type="RichTextLabel" parent="Ground/DeployLayer/Control"]
|
[node name="被砍断的文字2" type="RichTextLabel" parent="Ground/DeployLayer/砍断Pivot"]
|
||||||
custom_minimum_size = Vector2(200, 0)
|
custom_minimum_size = Vector2(200, 0)
|
||||||
layout_mode = 0
|
layout_mode = 0
|
||||||
offset_left = 4.0
|
offset_left = 42.5211
|
||||||
offset_top = -17.0
|
offset_top = 10.9728
|
||||||
offset_right = 204.0
|
offset_right = 242.521
|
||||||
offset_bottom = 24.0
|
offset_bottom = 51.9728
|
||||||
|
mouse_filter = 2
|
||||||
theme_override_colors/default_color = Color(1, 0, 0, 1)
|
theme_override_colors/default_color = Color(1, 0, 0, 1)
|
||||||
theme_override_fonts/normal_font = ExtResource("19_usr2w")
|
theme_override_fonts/normal_font = ExtResource("19_usr2w")
|
||||||
theme_override_font_sizes/normal_font_size = 40
|
theme_override_font_sizes/normal_font_size = 40
|
||||||
@ -319,12 +640,19 @@ text = "[wave]着[/wave]"
|
|||||||
fit_content = true
|
fit_content = true
|
||||||
scroll_active = false
|
scroll_active = false
|
||||||
|
|
||||||
[node name="结尾文字" type="RichTextLabel" parent="Ground/DeployLayer" index="22"]
|
[node name="AmbushLabel3" parent="Ground/DeployLayer" index="25" instance=ExtResource("11_lljm3")]
|
||||||
|
position = Vector2(8448, 36)
|
||||||
|
hook_method = "label_ambush3"
|
||||||
|
|
||||||
|
[node name="Label" type="RichTextLabel" parent="Ground/DeployLayer/AmbushLabel3"]
|
||||||
|
visible = false
|
||||||
|
z_index = 6
|
||||||
custom_minimum_size = Vector2(1000, 0)
|
custom_minimum_size = Vector2(1000, 0)
|
||||||
offset_left = 7302.0
|
offset_left = -372.0
|
||||||
offset_top = -71.0
|
offset_top = -40.0
|
||||||
offset_right = 8302.0
|
offset_right = 628.0
|
||||||
offset_bottom = -30.0
|
offset_bottom = 1.0
|
||||||
|
mouse_filter = 2
|
||||||
theme_override_colors/default_color = Color(1, 0, 0, 1)
|
theme_override_colors/default_color = Color(1, 0, 0, 1)
|
||||||
theme_override_fonts/normal_font = ExtResource("19_usr2w")
|
theme_override_fonts/normal_font = ExtResource("19_usr2w")
|
||||||
theme_override_font_sizes/normal_font_size = 40
|
theme_override_font_sizes/normal_font_size = 40
|
||||||
@ -334,23 +662,23 @@ fit_content = true
|
|||||||
scroll_active = false
|
scroll_active = false
|
||||||
horizontal_alignment = 1
|
horizontal_alignment = 1
|
||||||
|
|
||||||
[node name="PointLight2D结尾文字" type="PointLight2D" parent="Ground/DeployLayer/结尾文字"]
|
[node name="PointLight2D结尾文字" type="PointLight2D" parent="Ground/DeployLayer/AmbushLabel3/Label"]
|
||||||
position = Vector2(835, 78)
|
position = Vector2(835, 78)
|
||||||
range_layer_min = -5
|
range_layer_min = -5
|
||||||
texture = ExtResource("20_4gg56")
|
texture = ExtResource("20_4gg56")
|
||||||
texture_scale = 1.1
|
texture_scale = 1.1
|
||||||
|
|
||||||
[node name="洞口的手2" type="AnimatedSprite2D" parent="Ground/DeployLayer" index="23"]
|
[node name="洞口的手2" type="AnimatedSprite2D" parent="Ground/DeployLayer" index="26"]
|
||||||
z_index = -1
|
z_index = -1
|
||||||
position = Vector2(8091, 31)
|
position = Vector2(8835, 30.5)
|
||||||
sprite_frames = ExtResource("21_4bvrv")
|
sprite_frames = ExtResource("21_4bvrv")
|
||||||
animation = &"小手"
|
animation = &"小手"
|
||||||
autoplay = "小手"
|
autoplay = "小手"
|
||||||
speed_scale = 1.1
|
speed_scale = 1.1
|
||||||
|
|
||||||
[node name="洞口的手" type="AnimatedSprite2D" parent="Ground/DeployLayer" index="24"]
|
[node name="洞口的手" type="AnimatedSprite2D" parent="Ground/DeployLayer" index="27"]
|
||||||
z_index = 9
|
z_index = 9
|
||||||
position = Vector2(8155, 35)
|
position = Vector2(8899, 34.5)
|
||||||
sprite_frames = ExtResource("21_4bvrv")
|
sprite_frames = ExtResource("21_4bvrv")
|
||||||
animation = &"小手"
|
animation = &"小手"
|
||||||
autoplay = "小手"
|
autoplay = "小手"
|
||||||
@ -382,6 +710,13 @@ character = "胖子游戏"
|
|||||||
player_movement_rect = Rect2(30, -158, 8170, 316)
|
player_movement_rect = Rect2(30, -158, 8170, 316)
|
||||||
facing_direction = Vector2(1, 0)
|
facing_direction = Vector2(1, 0)
|
||||||
|
|
||||||
|
[node name="PointLight2D2" type="PointLight2D" parent="Ground/MainPlayer" index="6"]
|
||||||
|
position = Vector2(-4, -40)
|
||||||
|
energy = 0.5
|
||||||
|
range_layer_min = -10
|
||||||
|
range_layer_max = 2
|
||||||
|
texture = ExtResource("22_v1flc")
|
||||||
|
|
||||||
[node name="BGParallaxLayer" parent="Ground/ParallaxForeground" index="0"]
|
[node name="BGParallaxLayer" parent="Ground/ParallaxForeground" index="0"]
|
||||||
motion_scale = Vector2(0.9, 1)
|
motion_scale = Vector2(0.9, 1)
|
||||||
|
|
||||||
@ -395,7 +730,7 @@ texture = ExtResource("6_hno1l")
|
|||||||
offset = Vector2(0, 50)
|
offset = Vector2(0, 50)
|
||||||
|
|
||||||
[node name="PlayerLine2D" parent="Ground/ParallaxForeground" index="2"]
|
[node name="PlayerLine2D" parent="Ground/ParallaxForeground" index="2"]
|
||||||
points = PackedVector2Array(30, 150, 8162, 151)
|
points = PackedVector2Array(30, 150, 8921, 151)
|
||||||
|
|
||||||
[node name="DirectionalLight2D" parent="Ground" index="8"]
|
[node name="DirectionalLight2D" parent="Ground" index="8"]
|
||||||
energy = 0.4
|
energy = 0.4
|
||||||
@ -463,7 +798,7 @@ follow_viewport_enabled = true
|
|||||||
[node name="胖子游戏棺材怪" type="AnimatedSprite2D" parent="Ground/CanvasLayer" node_paths=PackedStringArray("move_target", "left_side_sprite", "right_side_sprite", "left_area", "right_area", "left_static_collision", "right_static_collision")]
|
[node name="胖子游戏棺材怪" type="AnimatedSprite2D" parent="Ground/CanvasLayer" node_paths=PackedStringArray("move_target", "left_side_sprite", "right_side_sprite", "left_area", "right_area", "left_static_collision", "right_static_collision")]
|
||||||
self_modulate = Color(1, 1, 1, 0)
|
self_modulate = Color(1, 1, 1, 0)
|
||||||
z_index = -1
|
z_index = -1
|
||||||
position = Vector2(1890, -17)
|
position = Vector2(3434, -17.5)
|
||||||
sprite_frames = ExtResource("16_f57cq")
|
sprite_frames = ExtResource("16_f57cq")
|
||||||
animation = &"棺材怪右砍"
|
animation = &"棺材怪右砍"
|
||||||
script = ExtResource("9_js8ld")
|
script = ExtResource("9_js8ld")
|
||||||
@ -485,12 +820,11 @@ loop = true
|
|||||||
loop_round_time = 0.4
|
loop_round_time = 0.4
|
||||||
metadata/_custom_type_script = "uid://wapo47a1oddf"
|
metadata/_custom_type_script = "uid://wapo47a1oddf"
|
||||||
|
|
||||||
[node name="Sfx2D棺材怪切刀" type="AudioStreamPlayer2D" parent="Ground/CanvasLayer/胖子游戏棺材怪"]
|
[node name="Sfx2D棺材怪切刀" type="AudioStreamPlayer" parent="Ground/CanvasLayer/胖子游戏棺材怪"]
|
||||||
stream = ExtResource("12_whxhi")
|
stream = ExtResource("12_whxhi")
|
||||||
max_distance = 1000.0
|
|
||||||
bus = &"game_sfx"
|
bus = &"game_sfx"
|
||||||
script = ExtResource("10_f57cq")
|
script = ExtResource("4_60xwi")
|
||||||
metadata/_custom_type_script = "uid://wapo47a1oddf"
|
metadata/_custom_type_script = "uid://rq6w1vuhuq1m"
|
||||||
|
|
||||||
[node name="左侧" type="RemoteTransform2D" parent="Ground/CanvasLayer/胖子游戏棺材怪"]
|
[node name="左侧" type="RemoteTransform2D" parent="Ground/CanvasLayer/胖子游戏棺材怪"]
|
||||||
position = Vector2(-308, -300)
|
position = Vector2(-308, -300)
|
||||||
|
@ -41,6 +41,7 @@ func _check_first_enter() -> void:
|
|||||||
|
|
||||||
|
|
||||||
func talk_with_npc() -> void:
|
func talk_with_npc() -> void:
|
||||||
|
$"../DeployLayer/Ambush对话探子".enabled = false
|
||||||
SceneManager.lock_player()
|
SceneManager.lock_player()
|
||||||
$"../DeployLayer/Pro探子".flip_h = false
|
$"../DeployLayer/Pro探子".flip_h = false
|
||||||
var camera = SceneManager.get_camera_marker()
|
var camera = SceneManager.get_camera_marker()
|
||||||
|
@ -95,6 +95,7 @@ metadata/_custom_type_script = "uid://cphfob11f7atx"
|
|||||||
|
|
||||||
[node name="Ambush对话探子" parent="Ground/DeployLayer" index="4" instance=ExtResource("9_0w5fd")]
|
[node name="Ambush对话探子" parent="Ground/DeployLayer" index="4" instance=ExtResource("9_0w5fd")]
|
||||||
position = Vector2(995.5, 44.5)
|
position = Vector2(995.5, 44.5)
|
||||||
|
one_shot = false
|
||||||
hook_method = "talk_with_npc"
|
hook_method = "talk_with_npc"
|
||||||
|
|
||||||
[node name="文物" type="Sprite2D" parent="Ground/DeployLayer" index="5"]
|
[node name="文物" type="Sprite2D" parent="Ground/DeployLayer" index="5"]
|
||||||
|
@ -4,7 +4,7 @@ extends AnimationRoot
|
|||||||
|
|
||||||
# 覆盖该方法
|
# 覆盖该方法
|
||||||
func _default_data() -> Dictionary:
|
func _default_data() -> Dictionary:
|
||||||
return {}
|
return {"has_entered": false}
|
||||||
|
|
||||||
|
|
||||||
func _ready() -> void:
|
func _ready() -> void:
|
||||||
@ -47,6 +47,15 @@ func _on_ground_ready() -> void:
|
|||||||
_disable_wall_on_meat(node)
|
_disable_wall_on_meat(node)
|
||||||
else:
|
else:
|
||||||
node.triggered.connect(_on_eat_meat_triggered.bind(node))
|
node.triggered.connect(_on_eat_meat_triggered.bind(node))
|
||||||
|
if not data["has_entered"]:
|
||||||
|
var x = $"../DeployLayer/portal_left".global_position.x
|
||||||
|
SceneManager.get_player().global_position.x = x
|
||||||
|
SceneManager.get_player().set_facing_direction(Vector2.RIGHT)
|
||||||
|
SceneManager.lock_player(0, 9, true)
|
||||||
|
set_data("has_entered", true)
|
||||||
|
await SceneManager.pause_and_hide_player_sprite(1.0)
|
||||||
|
await SceneManager.get_player().animation_finished
|
||||||
|
SceneManager.unlock_player()
|
||||||
|
|
||||||
|
|
||||||
func _disable_wall_on_meat(meat_node) -> void:
|
func _disable_wall_on_meat(meat_node) -> void:
|
||||||
@ -71,7 +80,7 @@ func _tween_display_label(node) -> void:
|
|||||||
label.show()
|
label.show()
|
||||||
var tween = create_tween()
|
var tween = create_tween()
|
||||||
tween.tween_property(label, "modulate:a", 1.0, 0.5)
|
tween.tween_property(label, "modulate:a", 1.0, 0.5)
|
||||||
tween.tween_interval(3.5)
|
tween.tween_interval(5.0)
|
||||||
tween.tween_property(label, "modulate:a", 0.0, 0.5)
|
tween.tween_property(label, "modulate:a", 0.0, 0.5)
|
||||||
|
|
||||||
|
|
||||||
|
@ -144,7 +144,7 @@ position = Vector2(2797, 0)
|
|||||||
offset = Vector2(0, -158)
|
offset = Vector2(0, -158)
|
||||||
|
|
||||||
[node name="portal_left" parent="Ground/DeployLayer" index="0"]
|
[node name="portal_left" parent="Ground/DeployLayer" index="0"]
|
||||||
position = Vector2(69, 21)
|
position = Vector2(159, 29)
|
||||||
|
|
||||||
[node name="portal_right" parent="Ground/DeployLayer" index="1"]
|
[node name="portal_right" parent="Ground/DeployLayer" index="1"]
|
||||||
position = Vector2(7496, 3)
|
position = Vector2(7496, 3)
|
||||||
@ -155,11 +155,12 @@ hook_method = "label_ambush1"
|
|||||||
|
|
||||||
[node name="Label" type="RichTextLabel" parent="Ground/DeployLayer/AmbushLabel1"]
|
[node name="Label" type="RichTextLabel" parent="Ground/DeployLayer/AmbushLabel1"]
|
||||||
visible = false
|
visible = false
|
||||||
|
z_index = 6
|
||||||
custom_minimum_size = Vector2(500, 0)
|
custom_minimum_size = Vector2(500, 0)
|
||||||
offset_left = -157.0
|
offset_left = -128.0
|
||||||
offset_top = -114.0
|
offset_top = -30.0
|
||||||
offset_right = 343.0
|
offset_right = 372.0
|
||||||
offset_bottom = -73.0
|
offset_bottom = 11.0
|
||||||
theme_override_colors/default_color = Color(1, 0, 0, 1)
|
theme_override_colors/default_color = Color(1, 0, 0, 1)
|
||||||
theme_override_fonts/normal_font = ExtResource("11_mr0pm")
|
theme_override_fonts/normal_font = ExtResource("11_mr0pm")
|
||||||
theme_override_font_sizes/normal_font_size = 40
|
theme_override_font_sizes/normal_font_size = 40
|
||||||
@ -190,6 +191,7 @@ offset_left = -474.0
|
|||||||
offset_top = -169.0
|
offset_top = -169.0
|
||||||
offset_right = 526.0
|
offset_right = 526.0
|
||||||
offset_bottom = -128.0
|
offset_bottom = -128.0
|
||||||
|
mouse_filter = 2
|
||||||
theme_override_colors/default_color = Color(1, 0, 0, 1)
|
theme_override_colors/default_color = Color(1, 0, 0, 1)
|
||||||
theme_override_fonts/normal_font = ExtResource("11_mr0pm")
|
theme_override_fonts/normal_font = ExtResource("11_mr0pm")
|
||||||
theme_override_font_sizes/normal_font_size = 40
|
theme_override_font_sizes/normal_font_size = 40
|
||||||
@ -204,11 +206,12 @@ hook_method = "label_ambush2"
|
|||||||
|
|
||||||
[node name="Label" type="RichTextLabel" parent="Ground/DeployLayer/AmbushLabel2"]
|
[node name="Label" type="RichTextLabel" parent="Ground/DeployLayer/AmbushLabel2"]
|
||||||
visible = false
|
visible = false
|
||||||
|
z_index = 6
|
||||||
custom_minimum_size = Vector2(500, 0)
|
custom_minimum_size = Vector2(500, 0)
|
||||||
offset_left = -143.0
|
offset_left = -145.0
|
||||||
offset_top = -122.0
|
offset_top = -39.0
|
||||||
offset_right = 357.0
|
offset_right = 355.0
|
||||||
offset_bottom = -81.0
|
offset_bottom = 2.0
|
||||||
theme_override_colors/default_color = Color(1, 0, 0, 1)
|
theme_override_colors/default_color = Color(1, 0, 0, 1)
|
||||||
theme_override_fonts/normal_font = ExtResource("11_mr0pm")
|
theme_override_fonts/normal_font = ExtResource("11_mr0pm")
|
||||||
theme_override_font_sizes/normal_font_size = 40
|
theme_override_font_sizes/normal_font_size = 40
|
||||||
@ -239,6 +242,7 @@ offset_left = -204.0
|
|||||||
offset_top = -166.0
|
offset_top = -166.0
|
||||||
offset_right = 296.0
|
offset_right = 296.0
|
||||||
offset_bottom = -125.0
|
offset_bottom = -125.0
|
||||||
|
mouse_filter = 2
|
||||||
theme_override_colors/default_color = Color(1, 0, 0, 1)
|
theme_override_colors/default_color = Color(1, 0, 0, 1)
|
||||||
theme_override_fonts/normal_font = ExtResource("11_mr0pm")
|
theme_override_fonts/normal_font = ExtResource("11_mr0pm")
|
||||||
theme_override_font_sizes/normal_font_size = 40
|
theme_override_font_sizes/normal_font_size = 40
|
||||||
@ -270,6 +274,7 @@ offset_left = -232.0
|
|||||||
offset_top = -165.0
|
offset_top = -165.0
|
||||||
offset_right = 268.0
|
offset_right = 268.0
|
||||||
offset_bottom = -124.0
|
offset_bottom = -124.0
|
||||||
|
mouse_filter = 2
|
||||||
theme_override_colors/default_color = Color(1, 0, 0, 1)
|
theme_override_colors/default_color = Color(1, 0, 0, 1)
|
||||||
theme_override_fonts/normal_font = ExtResource("11_mr0pm")
|
theme_override_fonts/normal_font = ExtResource("11_mr0pm")
|
||||||
theme_override_font_sizes/normal_font_size = 40
|
theme_override_font_sizes/normal_font_size = 40
|
||||||
@ -279,16 +284,17 @@ fit_content = true
|
|||||||
horizontal_alignment = 1
|
horizontal_alignment = 1
|
||||||
|
|
||||||
[node name="AmbushLabel3" parent="Ground/DeployLayer" index="7" instance=ExtResource("11_sul0a")]
|
[node name="AmbushLabel3" parent="Ground/DeployLayer" index="7" instance=ExtResource("11_sul0a")]
|
||||||
position = Vector2(4621, 52)
|
position = Vector2(4566, 54)
|
||||||
hook_method = "label_ambush3"
|
hook_method = "label_ambush3"
|
||||||
|
|
||||||
[node name="Label" type="RichTextLabel" parent="Ground/DeployLayer/AmbushLabel3"]
|
[node name="Label" type="RichTextLabel" parent="Ground/DeployLayer/AmbushLabel3"]
|
||||||
visible = false
|
visible = false
|
||||||
|
z_index = 6
|
||||||
custom_minimum_size = Vector2(500, 0)
|
custom_minimum_size = Vector2(500, 0)
|
||||||
offset_left = -101.0
|
offset_left = -79.0
|
||||||
offset_top = -123.0
|
offset_top = -58.0
|
||||||
offset_right = 399.0
|
offset_right = 421.0
|
||||||
offset_bottom = -82.0
|
offset_bottom = -17.0
|
||||||
theme_override_colors/default_color = Color(1, 0, 0, 1)
|
theme_override_colors/default_color = Color(1, 0, 0, 1)
|
||||||
theme_override_fonts/normal_font = ExtResource("11_mr0pm")
|
theme_override_fonts/normal_font = ExtResource("11_mr0pm")
|
||||||
theme_override_font_sizes/normal_font_size = 40
|
theme_override_font_sizes/normal_font_size = 40
|
||||||
@ -298,7 +304,7 @@ fit_content = true
|
|||||||
horizontal_alignment = 1
|
horizontal_alignment = 1
|
||||||
|
|
||||||
[node name="Ambush小孩山塌了" parent="Ground/DeployLayer" index="8" instance=ExtResource("11_sul0a")]
|
[node name="Ambush小孩山塌了" parent="Ground/DeployLayer" index="8" instance=ExtResource("11_sul0a")]
|
||||||
position = Vector2(5579.84, 32.01)
|
position = Vector2(5609.84, 32.01)
|
||||||
trigger_mode = "interact"
|
trigger_mode = "interact"
|
||||||
one_shot = false
|
one_shot = false
|
||||||
hook_method = "collapse"
|
hook_method = "collapse"
|
||||||
@ -308,11 +314,12 @@ position = Vector2(66.1602, 3.99001)
|
|||||||
|
|
||||||
[node name="都一样" type="RichTextLabel" parent="Ground/DeployLayer" index="9"]
|
[node name="都一样" type="RichTextLabel" parent="Ground/DeployLayer" index="9"]
|
||||||
visible = false
|
visible = false
|
||||||
|
z_index = 6
|
||||||
custom_minimum_size = Vector2(500, 0)
|
custom_minimum_size = Vector2(500, 0)
|
||||||
offset_left = 5401.0
|
offset_left = 5438.0
|
||||||
offset_top = -69.0
|
offset_top = 17.0
|
||||||
offset_right = 5901.0
|
offset_right = 5938.0
|
||||||
offset_bottom = -28.0
|
offset_bottom = 58.0
|
||||||
theme_override_colors/default_color = Color(1, 0, 0, 1)
|
theme_override_colors/default_color = Color(1, 0, 0, 1)
|
||||||
theme_override_fonts/normal_font = ExtResource("11_mr0pm")
|
theme_override_fonts/normal_font = ExtResource("11_mr0pm")
|
||||||
theme_override_font_sizes/normal_font_size = 40
|
theme_override_font_sizes/normal_font_size = 40
|
||||||
@ -425,7 +432,7 @@ layer = -1
|
|||||||
|
|
||||||
[node name="小孩山塌了" type="AnimatedSprite2D" parent="Ground/ParallaxBackground2/山前地后"]
|
[node name="小孩山塌了" type="AnimatedSprite2D" parent="Ground/ParallaxBackground2/山前地后"]
|
||||||
light_mask = 1025
|
light_mask = 1025
|
||||||
position = Vector2(5642.84, -25.99)
|
position = Vector2(5672.84, -25.99)
|
||||||
sprite_frames = ExtResource("10_7x1vi")
|
sprite_frames = ExtResource("10_7x1vi")
|
||||||
animation = &"小孩山塌了"
|
animation = &"小孩山塌了"
|
||||||
offset = Vector2(-47.84, -0.01)
|
offset = Vector2(-47.84, -0.01)
|
||||||
|
@ -40,14 +40,14 @@ func _ready() -> void:
|
|||||||
|
|
||||||
var rotationg_steps := 0
|
var rotationg_steps := 0
|
||||||
var last_step_msec := 0
|
var last_step_msec := 0
|
||||||
const TOTAL_STEPS = 6 * 3 # 转 3 圈
|
const TOTAL_STEPS = 6 * 4 # 转 4 圈
|
||||||
|
|
||||||
|
|
||||||
func _on_wheel_rotated(_radiant: float) -> void:
|
func _on_wheel_rotated(_radiant: float) -> void:
|
||||||
if rotationg_steps >= TOTAL_STEPS:
|
if rotationg_steps >= TOTAL_STEPS:
|
||||||
return
|
return
|
||||||
var time = Time.get_ticks_msec()
|
var time = Time.get_ticks_msec()
|
||||||
if time - last_step_msec < 200:
|
if time - last_step_msec < 100:
|
||||||
return
|
return
|
||||||
last_step_msec = time
|
last_step_msec = time
|
||||||
if not wheel_sfx.playing:
|
if not wheel_sfx.playing:
|
||||||
|
@ -21,14 +21,14 @@ func _on_ground_ready(_ground: Ground2D) -> void:
|
|||||||
# 进入演出
|
# 进入演出
|
||||||
var portal_2_x = $"../portal_2".global_position.x
|
var portal_2_x = $"../portal_2".global_position.x
|
||||||
SceneManager.get_player().global_position.x = portal_2_x
|
SceneManager.get_player().global_position.x = portal_2_x
|
||||||
_fatty_game_finished_show()
|
_fatty_game_finished_show.call_deferred()
|
||||||
|
|
||||||
|
|
||||||
func _fatty_game_finished_show() -> void:
|
func _fatty_game_finished_show() -> void:
|
||||||
var player = SceneManager.get_player()
|
var player = SceneManager.get_player()
|
||||||
var camera = SceneManager.get_camera_marker()
|
var camera = SceneManager.get_camera_marker()
|
||||||
SceneManager.lock_player(0, 20)
|
|
||||||
player.set_facing_direction(Vector2.LEFT)
|
player.set_facing_direction(Vector2.LEFT)
|
||||||
|
SceneManager.lock_player(0, 21, true)
|
||||||
var monster = $"../棺材怪切肉" as AnimatedSprite2D
|
var monster = $"../棺材怪切肉" as AnimatedSprite2D
|
||||||
monster.show()
|
monster.show()
|
||||||
monster.play("砍桌子")
|
monster.play("砍桌子")
|
||||||
@ -49,8 +49,6 @@ func _fatty_game_finished_show() -> void:
|
|||||||
create_tween().tween_property(sfx_monster, "volume_db", -100.0, 1.0)
|
create_tween().tween_property(sfx_monster, "volume_db", -100.0, 1.0)
|
||||||
create_tween().tween_property(sfx_laugh, "position:x", -500.0, 3.0).as_relative()
|
create_tween().tween_property(sfx_laugh, "position:x", -500.0, 3.0).as_relative()
|
||||||
await Util.wait(3.0)
|
await Util.wait(3.0)
|
||||||
# 镜头恢复前,显示小蝉 & 玩家起身
|
|
||||||
SceneManager.get_player()._play_animation()
|
|
||||||
var ambush_xchan = $"../Ambush小蝉消失" as Ambush2D
|
var ambush_xchan = $"../Ambush小蝉消失" as Ambush2D
|
||||||
ambush_xchan.visible = true
|
ambush_xchan.visible = true
|
||||||
ambush_xchan.modulate.a = 0.0
|
ambush_xchan.modulate.a = 0.0
|
||||||
|
@ -20,7 +20,7 @@ const RESET_Y := -300.0
|
|||||||
@export var right_static_collision: CollisionShape2D
|
@export var right_static_collision: CollisionShape2D
|
||||||
|
|
||||||
@onready var footstep_sfx = $"Sfx2D棺材怪脚步声" as Sfx2D
|
@onready var footstep_sfx = $"Sfx2D棺材怪脚步声" as Sfx2D
|
||||||
@onready var chop_sfx = $"Sfx2D棺材怪切刀" as Sfx2D
|
@onready var chop_sfx = $"Sfx2D棺材怪切刀" as Sfx
|
||||||
|
|
||||||
@onready var remote_left_side = $"左侧" as RemoteTransform2D
|
@onready var remote_left_side = $"左侧" as RemoteTransform2D
|
||||||
@onready var remote_right_side = $"右侧" as RemoteTransform2D
|
@onready var remote_right_side = $"右侧" as RemoteTransform2D
|
||||||
|
Loading…
Reference in New Issue
Block a user