hot fix; 优化音量度档过程

This commit is contained in:
cakipaul 2025-06-26 07:55:47 +08:00
parent 29afc57f32
commit 5b5af89683
29 changed files with 201 additions and 51 deletions

BIN
asset/art/prop/c01/信件碎片.png Executable file → Normal file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 42 KiB

After

Width:  |  Height:  |  Size: 42 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 37 KiB

After

Width:  |  Height:  |  Size: 37 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.6 KiB

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://ca3km2f6ncrqo"
path="res://.godot/imported/e_小蝉偷看.png-be6958103c78585802bcfef240eff388.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://asset/art/scene/c02/s06_二楼楼道/e_小蝉偷看.png"
dest_files=["res://.godot/imported/e_小蝉偷看.png-be6958103c78585802bcfef240eff388.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://cwa3hlkld05lu"
path="res://.godot/imported/小蝉偷看.png-525b25a4dd1af5873e6e5e60507df15c.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://asset/art/scene/c02/s06_二楼楼道/小蝉偷看.png"
dest_files=["res://.godot/imported/小蝉偷看.png-525b25a4dd1af5873e6e5e60507df15c.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

Binary file not shown.

Before

Width:  |  Height:  |  Size: 59 KiB

After

Width:  |  Height:  |  Size: 36 KiB

View File

@ -0,0 +1,24 @@
[remap]
importer="wav"
type="AudioStreamWAV"
uid="uid://slb4jd8n207c"
path="res://.godot/imported/小孩从近到远跑步.wav-0bd313abfb25bb06b3eb5dee0526bf49.sample"
[deps]
source_file="res://asset/audio/sfx/game/弹珠游戏/小孩从近到远跑步.wav"
dest_files=["res://.godot/imported/小孩从近到远跑步.wav-0bd313abfb25bb06b3eb5dee0526bf49.sample"]
[params]
force/8_bit=false
force/mono=false
force/max_rate=false
force/max_rate_hz=44100
edit/trim=false
edit/normalize=false
edit/loop_mode=0
edit/loop_begin=0
edit/loop_end=-1
compress/mode=2

View File

@ -56,11 +56,11 @@ ui_夜行船6,夜行船,,,,,
prop_空手,空手,,,,,
prop_空手_说明,空空如也,,,,,
prop_信碎片1,信碎片(一),,,[#texture=c01/信件左上.png],,
prop_信碎片1_说明,浦育院院长秦阳民国21年11月20日,,,,,
prop_信碎片1_说明,浦育院院长秦阳,,,,,
prop_信碎片2,信碎片(二),,,[#texture=c01/信件右上.png],,
prop_信碎片2_说明,...,,,,,
prop_信碎片2_说明,民国21年11月20日,,,,,
prop_银元,银元,,,[#texture=c01/银元.png],,
prop_银元_说明,一枚“袁大头”银元,中華民國十年造。,,,,,
prop_银元_说明,一枚“袁大头”银元,中华民国十年造。,,,,,
prop_院长的信,院长的信,,,[#texture=c01/院长的信物品.png][#inspect=c01/院长的信.png],,
prop_院长的信_说明,浦育院院长秦阳<br>民国21年11月20日<br>致吕萍:<br>你现下境况如何?<br>你虽离开浦育院已久,但我始终没有忘记为你祈祷。<br>愿上帝保佑你走向真正光明的道路。我相信这也是当年你父亲将你托付给我时的殷切愿景。<br>你既已成人,无论你的父母出于何种理由选择与你分离,你都应当拥有知晓真相的权利,所以我将公寓地址附在了信后,除此之外,我亦知之甚少。<br>若有闲暇,欢迎你回浦育院看看。<br>院长童玉君<br>民国十九年十月十五日<br>公寓地址 芦昌路26弄3号,,,,,
prop_火柴,火柴,,,[#texture=c02/火柴.png],,
@ -129,7 +129,7 @@ c01_s07_获得报纸,这是什么?,,,,,
c01_s07_书店展柜,院长说,读一百本书,就可以成为无所不能的大人。<br>如果我再大一些,没准可以求店长把我留下,我会干很多活,也能吃苦...,,,,,
c01_s08_书架游戏完成,这些书都被老鼠啃坏了,连木头架子都没放过。,,,,,
c01_s08_获得袁大头后,工钱还在老地方。,,,,,
c02_海报_剪辫子侦探,剪辮懸樑上偵探奇聞,,,,,
c02_海报_剪辫子侦探,剪辫悬梁上侦探奇闻,,,,,
c02_海报_戏法班,朱连魁全班戏法——「各有幻女...演技新奇」,,,,,
c02_芦昌路26,芦昌路26弄3号我父母真的住在这里吗...,,,,,
c02_s01_下黄包车,院长在信里提到的就是这里,,,,,
@ -167,7 +167,7 @@ c02_二楼楼梯杂物堆,堆满了杂物,看样子没办法从这里上去了
c02_二楼水盆,盆里的水很清澈,看上去像是刚盛的。,,,,,
c02_二楼老鼠洞,到处都是老鼠洞,怕不是整栋楼都被老鼠打通了。,,,,,
c02_二楼血脚印,又是这种小小尖尖的血脚印...,,,,,
c02_离开红色演出,刚才的那两个人...是幻觉吗,,,,,
c02_离开红色演出,刚才那些...到底是怎么回事?,,,,,
c02_瞎子卧室_八卦图,「乾三连,坤六断;震仰盂,艮覆碗;离中虚,坎中满;兑上缺,巽下断」<br>咦,这口诀是谁教我的来着...,,,,,
c02_瞎子卧室_血脚印,这画上的脚印和刚刚看到的一样。,,,,,
c02_瞎子卧室_十字架,院长房间里也有一个类似的十字架。,,,,,

1 keys zh_CN _character _notes _tags zh_SH en
56 prop_空手 空手
57 prop_空手_说明 空空如也
58 prop_信碎片1 信碎片(一) [#texture=c01/信件左上.png]
59 prop_信碎片1_说明 浦育院院长秦阳,民国21年,11月20日 浦育院院长秦阳
60 prop_信碎片2 信碎片(二) [#texture=c01/信件右上.png]
61 prop_信碎片2_说明 ... 民国21年,11月20日
62 prop_银元 银元 [#texture=c01/银元.png]
63 prop_银元_说明 一枚“袁大头”银元,中華民國十年造。 一枚“袁大头”银元,中华民国十年造。
64 prop_院长的信 院长的信 [#texture=c01/院长的信物品.png][#inspect=c01/院长的信.png]
65 prop_院长的信_说明 浦育院院长秦阳<br>民国21年11月20日<br>致吕萍:<br>你现下境况如何?<br>你虽离开浦育院已久,但我始终没有忘记为你祈祷。<br>愿上帝保佑你走向真正光明的道路。我相信这也是当年你父亲将你托付给我时的殷切愿景。<br>你既已成人,无论你的父母出于何种理由选择与你分离,你都应当拥有知晓真相的权利,所以我将公寓地址附在了信后,除此之外,我亦知之甚少。<br>若有闲暇,欢迎你回浦育院看看。<br>院长童玉君<br>民国十九年十月十五日<br>公寓地址 芦昌路26弄3号
66 prop_火柴 火柴 [#texture=c02/火柴.png]
129 c01_s07_书店展柜 院长说,读一百本书,就可以成为无所不能的大人。<br>如果我再大一些,没准可以求店长把我留下,我会干很多活,也能吃苦...
130 c01_s08_书架游戏完成 这些书都被老鼠啃坏了,连木头架子都没放过。
131 c01_s08_获得袁大头后 工钱还在老地方。
132 c02_海报_剪辫子侦探 剪辮懸樑上偵探奇聞 剪辫悬梁上侦探奇闻
133 c02_海报_戏法班 朱连魁全班戏法——「各有幻女...演技新奇」
134 c02_芦昌路26 芦昌路26弄3号,我父母真的住在这里吗...
135 c02_s01_下黄包车 院长在信里提到的就是这里
167 c02_二楼水盆 盆里的水很清澈,看上去像是刚盛的。
168 c02_二楼老鼠洞 到处都是老鼠洞,怕不是整栋楼都被老鼠打通了。
169 c02_二楼血脚印 又是这种小小尖尖的血脚印...
170 c02_离开红色演出 刚才的那两个人...是幻觉吗 刚才那些...到底是怎么回事?
171 c02_瞎子卧室_八卦图 「乾三连,坤六断;震仰盂,艮覆碗;离中虚,坎中满;兑上缺,巽下断」<br>咦,这口诀是谁教我的来着...
172 c02_瞎子卧室_血脚印 这画上的脚印和刚刚看到的一样。
173 c02_瞎子卧室_十字架 院长房间里也有一个类似的十字架。

View File

@ -164,7 +164,7 @@
这些书都被老鼠啃坏了,连木头架子都没放过。 [ID:c01_s08_书架游戏完成]
工钱还在老地方。 [ID:c01_s08_获得袁大头后]
# c02
辮懸樑上偵探奇聞 [ID:c02_海报_剪辫子侦探]
辫悬梁上侦探奇闻 [ID:c02_海报_剪辫子侦探]
朱连魁全班戏法——「各有幻女...演技新奇」 [ID:c02_海报_戏法班]
# c02-s01 街道
芦昌路26弄3号我父母真的住在这里吗... [ID:c02_芦昌路26]

View File

@ -1,17 +1,16 @@
[gd_resource type="AudioBusLayout" format=3 uid="uid://d3rxegy32deki"]
[resource]
bus/0/volume_db = -0.030508
bus/0/send = &"music"
bus/0/volume_db = 0.173916
bus/1/name = &"dialog"
bus/1/solo = false
bus/1/mute = false
bus/1/bypass_fx = false
bus/1/volume_db = -0.00828743
bus/1/volume_db = -0.106054
bus/1/send = &"game_sfx"
bus/2/name = &"game_sfx"
bus/2/solo = false
bus/2/mute = false
bus/2/bypass_fx = false
bus/2/volume_db = -0.00606537
bus/2/volume_db = -0.00828743
bus/2/send = &"Master"

View File

@ -72,9 +72,9 @@ signal auto_save_seconds_changed
@export var window_fullscreen := false
@export var window_top := true
# sound
@export var db_master := linear_to_db(1.0) # default
@export var db_dialog := linear_to_db(0.7) # default
@export var db_game_sfx := linear_to_db(0.7) # default
@export var db_master := -3.0 # default
@export var db_dialog := -7.0 # default
@export var db_game_sfx := 3.0 # default
# language
# -1 null; 0 zh_CN; 1 zh_SH; 2 en
@export var language := 0

View File

@ -29,6 +29,12 @@ func _set_config(val: GlobalConfig) -> void:
AudioServer.set_bus_volume_db(AudioServer.get_bus_index("Master"), config.db_master)
AudioServer.set_bus_volume_db(AudioServer.get_bus_index("game_sfx"), config.db_game_sfx)
AudioServer.set_bus_volume_db(AudioServer.get_bus_index("dialog"), config.db_dialog)
prints(
"config load volume_db settings (master, sfx, dialog): ",
config.db_master,
config.db_game_sfx,
config.db_dialog
)
func _on_timer_timeout():

View File

@ -42,15 +42,15 @@ func c02_fire_count_down_try_start():
c02_fire_count_down_timer = Timer.new()
c02_fire_count_down_timer.autostart = true
if GlobalConfig.DEBUG:
SceneManager.pop_debug_dialog_info("debug", "当前为测试模式,倒计时 10s正式模式倒计时 60s")
c02_fire_count_down_timer.wait_time = 10
SceneManager.pop_debug_dialog_info("debug", "当前为测试模式,倒计时 15s正式模式倒计时 60s")
c02_fire_count_down_timer.wait_time = 15
else:
c02_fire_count_down_timer.wait_time = 60
c02_fire_count_down_timer.one_shot = false
c02_fire_count_down_timer.timeout.connect(_on_c02_fire_count_down_timeout)
add_child(c02_fire_count_down_timer)
SceneManager.pop_debug_dialog_info("音效", "霸凌救小蝉倒计时")
AudioManager.loop_bgm_music("霸凌救小蝉倒计时", c02_fire_count_down_sfx)
AudioManager.loop_bgm_music("霸凌救小蝉倒计时", c02_fire_count_down_sfx, 5)
func _on_c02_fire_count_down_timeout():
@ -66,7 +66,7 @@ func _on_c02_fire_count_down_timeout():
# res://asset/audio/BGM/心跳背景音.mp3
await get_tree().create_timer(3.0).timeout
SceneManager.pop_debug_dialog_info("音效", "霸凌救小蝉倒计时")
AudioManager.loop_bgm_music("霸凌救小蝉倒计时", c02_fire_count_down_sfx)
AudioManager.loop_bgm_music("霸凌救小蝉倒计时", c02_fire_count_down_sfx, 5)
c02_fire_count_down_timer.start()

View File

@ -120,10 +120,10 @@ func freeze_and_play(lock_time: float, animation := "", auto_quit := false) -> v
printerr("Player node not found")
func release_player():
func release_player(force_clear:=false):
var player = get_player()
if player:
player.release_player()
player.release_player(force_clear)
else:
printerr("Player node not found")

View File

@ -62,8 +62,7 @@ signal animation_finished
if is_node_ready():
_check_character_runtime_status()
if val > 3:
freeze_player(0, val, true)
release_player()
freeze_player(1, val, true)
# 使用 new方便在 editor 中刷新新值
var current_animation_config: Dictionary
@ -298,14 +297,14 @@ func player_action(action_code: int, auto_quit: bool):
sprite.animation_finished.connect(_play_animation, CONNECT_ONE_SHOT)
var lock_mutex = Mutex.new()
var freeze_counter := 0
var release_timer: SceneTreeTimer
# 自动解除对应 animation 的 loop 状态
# lock_time: the time to lock the player action. 0 means lock forever, thus the player will be locked until release_player is called.
func freeze_player(lock_time: float, action_code: int, auto_quit: bool) -> void:
lock_mutex.lock()
freeze_counter += 1
action_freezed = true
player_action(action_code, auto_quit)
if lock_time:
@ -314,15 +313,24 @@ func freeze_player(lock_time: float, action_code: int, auto_quit: bool) -> void:
else:
release_timer = get_tree().create_timer(lock_time)
release_timer.timeout.connect(release_player)
lock_mutex.unlock()
func release_player():
# force_clear 强制清零计数器
func release_player(force_clear := false):
release_timer = null
lock_mutex.lock()
action_freezed = false
freeze_counter -= 1
if force_clear:
if freeze_counter != 0 and GlobalConfig.DEBUG:
printerr(
"release_player force_clear=True worked. freeze_counter before: %s" % freeze_counter
)
freeze_counter = 0
if freeze_counter == 0:
action_freezed = false
elif freeze_counter < 0:
action_freezed = false
printerr("release_player called with freeze_counter < 0, this should not happen.")
# velocity_ratio = 1.0
lock_mutex.unlock()
# _play_animation()

View File

@ -42,12 +42,13 @@ size = Vector2(15, 180)
z_index = 5
collision_mask = 2
script = ExtResource("1_3a78y")
catty_light_energy = 0.3
running_locked = true
metadata/_edit_vertical_guides_ = [-15.0, -3.0]
[node name="PointLight2D" type="PointLight2D" parent="."]
position = Vector2(0, -60)
energy = 0.8
energy = 1.2
range_item_cull_mask = 15
shadow_enabled = true
texture = SubResource("GradientTexture2D_gk3xo")

View File

@ -45,7 +45,6 @@ shape = SubResource("RectangleShape2D_ogin7")
[node name="SignSnapper" type="Marker2D" parent="."]
unique_name_in_owner = true
script = ExtResource("7_dnubm")
release_player_on_arrived = false
radius = 3.0
delay_arrived = 0.1
action_on_arrived = 4

View File

@ -181,7 +181,6 @@ shape = SubResource("RectangleShape2D_4fuic")
[node name="SignSnapper" type="Marker2D" parent="."]
unique_name_in_owner = true
script = ExtResource("8_7lwt5")
release_player_on_arrived = false
radius = 20.0
walk_to_edge = true
delay_arrived = 0.1

View File

@ -85,6 +85,7 @@ packed_scene = ExtResource("7_fvlg0")
first_interact_os_key = "c02_保卫科祭台os"
[node name="Closeup老鼠精" parent="Ground/DeployLayer" index="4" instance=ExtResource("6_66gue")]
light_mask = 5
position = Vector2(207.5, -40.5)
texture = ExtResource("11_ffvrp")
packed_scene = ExtResource("8_cm3g6")

View File

@ -252,8 +252,9 @@ animation = &"奇怪的肉被拖进去动画"
visible = false
position = Vector2(668, 85)
texture = ExtResource("18_bk7rf")
sign_mark_offset = Vector2(0, -9.86)
sign_mark_offset = Vector2(-2.98, -9.86)
enabled = false
collision_width_and_x = Vector2(43.96, 0)
prop_key = "prop_奇怪的肉"
[node name="小蜡烛" type="AnimatedSprite2D" parent="Ground/DeployLayer" index="14"]

View File

@ -63,6 +63,14 @@ func _on_ground_ready() -> void:
ball_game_boys_ambush.enabled = true
ball_game_boys_ambush.visible = true
if $"../DeployLayer/Ambush小蝉偷看".played:
$"../DeployLayer/Ambush小蝉偷看".visible = false
# 小蝉偷看
func glimpse_hide_out():
$"../DeployLayer/Ambush小蝉偷看".visible = false
$"Sfx偷看关门".play()
func _on_mice_hole_interacted():
mice_hole.enabled = false

View File

@ -1,4 +1,4 @@
[gd_scene load_steps=49 format=3 uid="uid://cootarwb44vvh"]
[gd_scene load_steps=51 format=3 uid="uid://cootarwb44vvh"]
[ext_resource type="PackedScene" uid="uid://dayyx4jerj7io" path="res://scene/ground/ground.tscn" id="1_qkymk"]
[ext_resource type="Script" uid="uid://cbt0ubygchxvv" path="res://scene/ground/scene/c02/s06_animation.gd" id="2_4dg6u"]
@ -12,6 +12,7 @@
[ext_resource type="AudioStream" uid="uid://cljr4g0sivpdh" path="res://asset/audio/sfx/交互/sfx_煤油灯点燃成功.wav" id="5_wywax"]
[ext_resource type="Texture2D" uid="uid://b78jbthcfkod7" path="res://asset/art/scene/c02/s03_公寓一楼院子/地面物品反光/地反光3.png" id="6_vbvbc"]
[ext_resource type="PackedScene" uid="uid://cw3q5pvciumil" path="res://scene/entity/interactable.tscn" id="7_0d746"]
[ext_resource type="AudioStream" uid="uid://5jk88e0cncy8" path="res://asset/audio/sfx/交互/序章/04_书店内_关门.wav" id="7_7kxvk"]
[ext_resource type="Texture2D" uid="uid://f7yd3xpr1utp" path="res://asset/art/scene/c02/s06_二楼楼道/e_楼梯杂物堆.png" id="7_v3hjg"]
[ext_resource type="Texture2D" uid="uid://b7uo33bdiwpl3" path="res://asset/art/scene/c02/s03_公寓一楼院子/地面物品反光/地反光4.png" id="8_7x2h6"]
[ext_resource type="SpriteFrames" uid="uid://blij4obvhb1vf" path="res://asset/art/gif/c02_公寓过道/c02_公寓过道_frames.tres" id="8_nh8we"]
@ -36,6 +37,7 @@
[ext_resource type="PackedScene" uid="uid://ci5anaxsa1apl" path="res://scene/entity/inspectable.tscn" id="32_4ndyv"]
[ext_resource type="Texture2D" uid="uid://day38kany2gmr" path="res://asset/art/scene/c02/小蝉寻人启事/e_寻人启事完整.png" id="33_h3h1a"]
[ext_resource type="Texture2D" uid="uid://ce3d785v5lxg2" path="res://asset/art/scene/c02/小蝉寻人启事/ux_寻人启事完整.png" id="34_3u30v"]
[ext_resource type="Texture2D" uid="uid://ca3km2f6ncrqo" path="res://asset/art/scene/c02/s06_二楼楼道/e_小蝉偷看.png" id="37_osg51"]
[sub_resource type="Animation" id="Animation_k01ve"]
length = 0.001
@ -866,6 +868,12 @@ bus = &"game_sfx"
script = ExtResource("4_2e08x")
metadata/_custom_type_script = "uid://rq6w1vuhuq1m"
[node name="Sfx偷看关门" type="AudioStreamPlayer" parent="Ground/AnimationPlayer" index="3"]
stream = ExtResource("7_7kxvk")
bus = &"game_sfx"
script = ExtResource("4_2e08x")
metadata/_custom_type_script = "uid://rq6w1vuhuq1m"
[node name="BGSprite2D" parent="Ground" index="1"]
light_mask = 5
position = Vector2(0, -2)
@ -1129,8 +1137,14 @@ texture = ExtResource("33_h3h1a")
texture_cover = ExtResource("34_3u30v")
content_key = "c02_寻人启事_完整"
[node name="Ambush小蝉偷看" parent="Ground/DeployLayer" index="19" instance=ExtResource("14_k01ve")]
position = Vector2(553, -5)
texture = ExtResource("37_osg51")
collision_width_and_x = Vector2(150, 0)
hook_method = "glimpse_hide_out"
[node name="MainPlayer" parent="Ground" index="4"]
position = Vector2(650, 98)
position = Vector2(63, 95)
catty_light_energy = 0.5
facing_direction = Vector2(1, 0)

View File

@ -18,14 +18,14 @@ func _ready() -> void:
button.pressed.connect(_on_button_pressed)
fail_time = Time.get_ticks_msec()
button.disabled = true
DialogueManager.show_dialogue_balloon(dialogue, "c02_s03_敲门游戏intro")
await DialogueManager.dialogue_ended
if (
# not ArchiveManager.get_global_value("c02_eavesdrop_finished", false) or
# ArchiveManager.get_global_value("c02_meat_dropping", false) or
if not ArchiveManager.get_global_value("c02_meat_door_interacted", false):
ArchiveManager.set_global_entry("c02_meat_door_interacted", true)
DialogueManager.show_dialogue_balloon(dialogue, "c02_s03_敲门游戏intro")
await DialogueManager.dialogue_ended
if ArchiveManager.get_global_value("c02_meat_given", false):
# not ArchiveManager.get_global_value("c02_eavesdrop_finished", false) or
# ArchiveManager.get_global_value("c02_meat_dropping", false) or
# 敲门成功,则禁用
ArchiveManager.get_global_value("c02_meat_given", false)
):
button.disabled = true
else:
button.disabled = false

View File

@ -19,6 +19,7 @@ texture = ExtResource("2_eyynm")
[node name="ContentInspector" parent="." instance=ExtResource("3_lpmq3")]
[node name="遮罩" type="TextureRect" parent="ContentInspector"]
visible = false
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0

View File

@ -40,9 +40,6 @@ gravity = Vector3(0, 98, 0)
scale_min = 0.35
scale_max = 0.4
scale_over_velocity_curve = SubResource("CurveTexture_jw8nx")
collision_mode = 1
collision_friction = 0.5
collision_bounce = 0.0
[node name="BallsFalling" type="Node2D"]
y_sort_enabled = true

View File

@ -6,7 +6,6 @@ signal exit(success)
@onready var pivot = $Pivot as Node2D
@onready var hand_pivot = $Pivot/HandPivot as Node2D
@onready var label = %RichTextLabel as RichTextLabel
@onready var audio_player = %AudioStreamPlayer as AudioStreamPlayer
# ogg文件丢球drop 地面明显碰撞声)+球碰球hit 响亮)+细碎滚动声loop三个部分
@onready var sfx_hit = $SfxHit as Sfx
@ -244,6 +243,7 @@ func game_win() -> void:
print("game_win 弹珠游戏胜利")
# 0:默认 1:寻找弹珠(老虎钳可以换弹珠) 2:给出弹珠 3:游戏结束
ArchiveManager.set_global_entry("c02_ball_game_stage", 3)
%"Sfx结尾小孩跑".play()
# 弹珠雨
$BallsFalling.emitting = true
pivot.visible = false

View File

@ -1,6 +1,7 @@
[gd_scene load_steps=24 format=3 uid="uid://cjx7o685ox8c1"]
[gd_scene load_steps=25 format=3 uid="uid://cjx7o685ox8c1"]
[ext_resource type="Script" uid="uid://c5s4giu182isu" path="res://scene/little_game/弹珠游戏/弹珠游戏.gd" id="1_p2trd"]
[ext_resource type="AudioStream" uid="uid://cra6rqbs6r1qd" path="res://asset/audio/sfx/旧版/child/小孩从近到远跑步.wav" id="2_aqxy0"]
[ext_resource type="Texture2D" uid="uid://bvf8b057baglw" path="res://asset/art/little_game/弹珠/bg_弹珠游戏.png" id="2_bm1k0"]
[ext_resource type="Texture2D" uid="uid://bs4tp4amd1kkm" path="res://asset/art/little_game/弹珠/抱手.png" id="3_3kvx4"]
[ext_resource type="AudioStream" uid="uid://bb6njoaxi2hbx" path="res://asset/audio/sfx/game/弹珠游戏/hit.ogg" id="3_co06r"]
@ -255,6 +256,13 @@ radius = 300.0
[node name="弹珠游戏" type="CanvasLayer"]
script = ExtResource("1_p2trd")
[node name="Sfx结尾小孩跑" type="AudioStreamPlayer" parent="."]
unique_name_in_owner = true
stream = ExtResource("2_aqxy0")
bus = &"game_sfx"
script = ExtResource("4_co06r")
metadata/_custom_type_script = "uid://rq6w1vuhuq1m"
[node name="TextureRect" type="TextureRect" parent="."]
z_index = -1
offset_left = -4.0
@ -292,9 +300,6 @@ text = "[wave amp=10.0 freq=5.0][shake rate=4.0 level=3] 弹珠拿出来"
fit_content = true
horizontal_alignment = 1
[node name="AudioStreamPlayer" type="AudioStreamPlayer" parent="MarginContainer"]
unique_name_in_owner = true
[node name="AnimationPlayer" type="AnimationPlayer" parent="."]
libraries = {
&"": SubResource("AnimationLibrary_fk3jp")

View File

@ -14,8 +14,27 @@ extends CanvasLayer
@onready var gallery_btn = %GalleryBtn as Button
# 音量 DB 偏移
var sfx_db_offset := 6.0
var dialog_db_offset := -20.0
const sfx_db_offset := 6.0
const dialog_db_offset := -10.0
static func _init() -> void:
AudioServer.set_bus_volume_db(
AudioServer.get_bus_index("Master"), GlobalConfigManager.config.db_master
)
AudioServer.set_bus_volume_db(
AudioServer.get_bus_index("game_sfx"), GlobalConfigManager.config.db_game_sfx
)
AudioServer.set_bus_volume_db(
AudioServer.get_bus_index("dialog"), GlobalConfigManager.config.db_dialog
)
if GlobalConfig.DEBUG:
prints(
"_init setup volume_db (master, sfx, dialog): ",
GlobalConfigManager.config.db_master,
GlobalConfigManager.config.db_game_sfx,
GlobalConfigManager.config.db_dialog
)
func _ready():