sfx and music

This commit is contained in:
D L 2023-01-29 18:39:59 -08:00
parent b9602abb51
commit 49b54b1aba
35 changed files with 719 additions and 11 deletions

BIN
BGM/Intro_Snow_-_Utsuho.mp3 Normal file

Binary file not shown.

View File

@ -0,0 +1,15 @@
[remap]
importer="mp3"
type="AudioStreamMP3"
path="res://.import/Intro_Snow_-_Utsuho.mp3-f719af255c9c746ad5c0d83b1a2b003c.mp3str"
[deps]
source_file="res://BGM/Intro_Snow_-_Utsuho.mp3"
dest_files=[ "res://.import/Intro_Snow_-_Utsuho.mp3-f719af255c9c746ad5c0d83b1a2b003c.mp3str" ]
[params]
loop=true
loop_offset=0

Binary file not shown.

View File

@ -0,0 +1,15 @@
[remap]
importer="mp3"
type="AudioStreamMP3"
path="res://.import/Kyouko_Snow_-_Utsuho.mp3-739407bb4a286baad94d88f9c881ee47.mp3str"
[deps]
source_file="res://BGM/Kyouko_Snow_-_Utsuho.mp3"
dest_files=[ "res://.import/Kyouko_Snow_-_Utsuho.mp3-739407bb4a286baad94d88f9c881ee47.mp3str" ]
[params]
loop=true
loop_offset=0

BIN
BGM/Letty_Snow_-_Utsuho.mp3 Normal file

Binary file not shown.

View File

@ -0,0 +1,15 @@
[remap]
importer="mp3"
type="AudioStreamMP3"
path="res://.import/Letty_Snow_-_Utsuho.mp3-6aa3ce3e75cf8a877a6d642890ee099b.mp3str"
[deps]
source_file="res://BGM/Letty_Snow_-_Utsuho.mp3"
dest_files=[ "res://.import/Letty_Snow_-_Utsuho.mp3-6aa3ce3e75cf8a877a6d642890ee099b.mp3str" ]
[params]
loop=true
loop_offset=0

BIN
BGM/Score_End_-_Utsuho.mp3 Normal file

Binary file not shown.

View File

@ -0,0 +1,15 @@
[remap]
importer="mp3"
type="AudioStreamMP3"
path="res://.import/Score_End_-_Utsuho.mp3-377850123232bdb1cd68eb1728dc31dd.mp3str"
[deps]
source_file="res://BGM/Score_End_-_Utsuho.mp3"
dest_files=[ "res://.import/Score_End_-_Utsuho.mp3-377850123232bdb1cd68eb1728dc31dd.mp3str" ]
[params]
loop=true
loop_offset=0

BIN
Graphics/CGs/panel2.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

View File

@ -0,0 +1,35 @@
[remap]
importer="texture"
type="StreamTexture"
path="res://.import/panel2.png-d69bb7f0ebce86dd6b32943e61eed2fb.stex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://Graphics/CGs/panel2.png"
dest_files=[ "res://.import/panel2.png-d69bb7f0ebce86dd6b32943e61eed2fb.stex" ]
[params]
compress/mode=0
compress/lossy_quality=0.7
compress/hdr_mode=0
compress/bptc_ldr=0
compress/normal_map=0
flags/repeat=0
flags/filter=true
flags/mipmaps=false
flags/anisotropic=false
flags/srgb=2
process/fix_alpha_border=true
process/premult_alpha=false
process/HDR_as_SRGB=false
process/invert_color=false
process/normal_map_invert_y=false
stream=false
size_limit=0
detect_3d=true
svg/scale=1.0

BIN
Graphics/CGs/panel3.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

View File

@ -0,0 +1,35 @@
[remap]
importer="texture"
type="StreamTexture"
path="res://.import/panel3.png-de098c5ce8be90b6089e9c82d2af3a4d.stex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://Graphics/CGs/panel3.png"
dest_files=[ "res://.import/panel3.png-de098c5ce8be90b6089e9c82d2af3a4d.stex" ]
[params]
compress/mode=0
compress/lossy_quality=0.7
compress/hdr_mode=0
compress/bptc_ldr=0
compress/normal_map=0
flags/repeat=0
flags/filter=true
flags/mipmaps=false
flags/anisotropic=false
flags/srgb=2
process/fix_alpha_border=true
process/premult_alpha=false
process/HDR_as_SRGB=false
process/invert_color=false
process/normal_map_invert_y=false
stream=false
size_limit=0
detect_3d=true
svg/scale=1.0

View File

@ -0,0 +1,36 @@
extends Node
var intro_snow = load("res://BGM/Intro_Snow_-_Utsuho.mp3")
var kyouko_snow = load("res://BGM/Kyouko_Snow_-_Utsuho.mp3")
var letty_snow = load("res://BGM/Letty_Snow_-_Utsuho.mp3")
var score_end = load("res://BGM/Score_End_-_Utsuho.mp3")
var player : AudioStreamPlayer
func _ready():
player = get_node("AudioStreamPlayer")
func play_intro_snow():
if not player.playing or not player.stream == intro_snow:
player.stop()
player.stream = intro_snow
player.play()
func play_kyouko_snow():
if not player.playing or not player.stream == kyouko_snow:
player.stop()
player.stream = kyouko_snow
player.play()
func play_letty_snow():
if not player.playing or not player.stream == letty_snow:
player.stop()
player.stream = letty_snow
player.play()
func play_score_end():
if not player.playing or not player.stream == score_end:
player.stop()
player.stream = score_end
player.play()

View File

@ -0,0 +1,9 @@
[gd_scene load_steps=2 format=2]
[ext_resource path="res://Scenes/Autoloads/MusicController.gd" type="Script" id=1]
[node name="Node" type="Node"]
script = ExtResource( 1 )
[node name="AudioStreamPlayer" type="AudioStreamPlayer" parent="."]
volume_db = -10.0

View File

@ -184,3 +184,4 @@ color = Color( 0, 0, 0, 1 )
[node name="AudioStreamPlayer" type="AudioStreamPlayer" parent="."]
stream = ExtResource( 5 )
volume_db = -10.0

184
Scenes/Cutscene2.tscn Normal file
View File

@ -0,0 +1,184 @@
[gd_scene load_steps=10 format=2]
[ext_resource path="res://Graphics/UI/DialogueBox.png" type="Texture" id=1]
[ext_resource path="res://Graphics/CGs/panel2.png" type="Texture" id=2]
[ext_resource path="res://Scripts/CutsceneRunner.gd" type="Script" id=3]
[ext_resource path="res://Fonts/luckiest-guy/luckiest-guy.tres" type="DynamicFont" id=4]
[ext_resource path="res://Sounds/Beep.wav" type="AudioStream" id=5]
[sub_resource type="Animation" id=3]
resource_name = "DialogueFade"
length = 2.0
tracks/0/type = "value"
tracks/0/path = NodePath(".:modulate")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/keys = {
"times": PoolRealArray( 0, 0.7, 0.701, 1.2, 2 ),
"transitions": PoolRealArray( 1, 1, 1, 1, 1 ),
"update": 0,
"values": [ Color( 1, 1, 1, 1 ), Color( 1, 1, 1, 0 ), Color( 1, 1, 1, 0 ), Color( 1, 1, 1, 0 ), Color( 1, 1, 1, 1 ) ]
}
tracks/1/type = "method"
tracks/1/path = NodePath("..")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/keys = {
"times": PoolRealArray( 0.7, 2 ),
"transitions": PoolRealArray( 1, 1 ),
"values": [ {
"args": [ ],
"method": "mid_dialogue_fade"
}, {
"args": [ ],
"method": "dialogue_fade_done"
} ]
}
[sub_resource type="Animation" id=4]
resource_name = "FinalFade"
length = 1.5
tracks/0/type = "value"
tracks/0/path = NodePath("../ColorRect:modulate")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/keys = {
"times": PoolRealArray( 0, 1.5 ),
"transitions": PoolRealArray( 1, 1 ),
"update": 0,
"values": [ Color( 1, 1, 1, 0 ), Color( 1, 1, 1, 1 ) ]
}
tracks/1/type = "method"
tracks/1/path = NodePath("..")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/keys = {
"times": PoolRealArray( 1.5 ),
"transitions": PoolRealArray( 1 ),
"values": [ {
"args": [ ],
"method": "final_fade_done"
} ]
}
[sub_resource type="Animation" id=1]
resource_name = "InitialFade"
length = 2.25
tracks/0/type = "value"
tracks/0/path = NodePath(".:modulate")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/keys = {
"times": PoolRealArray( 1.5, 2.2 ),
"transitions": PoolRealArray( 1, 1 ),
"update": 0,
"values": [ Color( 1, 1, 1, 0 ), Color( 1, 1, 1, 1 ) ]
}
tracks/1/type = "value"
tracks/1/path = NodePath("../ColorRect:modulate")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/keys = {
"times": PoolRealArray( 0, 1.5 ),
"transitions": PoolRealArray( 1, 1 ),
"update": 0,
"values": [ Color( 1, 1, 1, 1 ), Color( 1, 1, 1, 0 ) ]
}
tracks/2/type = "method"
tracks/2/path = NodePath("..")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/keys = {
"times": PoolRealArray( 2.2 ),
"transitions": PoolRealArray( 1 ),
"values": [ {
"args": [ ],
"method": "dialogue_fade_done"
} ]
}
[sub_resource type="Animation" id=2]
length = 0.001
tracks/0/type = "value"
tracks/0/path = NodePath(".:modulate")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/keys = {
"times": PoolRealArray( 0 ),
"transitions": PoolRealArray( 1 ),
"update": 0,
"values": [ Color( 1, 1, 1, 0 ) ]
}
tracks/1/type = "value"
tracks/1/path = NodePath("../ColorRect:modulate")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/keys = {
"times": PoolRealArray( 0 ),
"transitions": PoolRealArray( 1 ),
"update": 0,
"values": [ Color( 1, 1, 1, 1 ) ]
}
[node name="Control" type="Control"]
anchor_right = 1.0
anchor_bottom = 1.0
script = ExtResource( 3 )
cutscene_name = "Cutscene2"
next_scene_to_load = "Cutscene3"
[node name="CG" type="TextureRect" parent="."]
margin_right = 40.0
margin_bottom = 40.0
texture = ExtResource( 2 )
[node name="DialogueBox" type="TextureRect" parent="."]
modulate = Color( 1, 1, 1, 0 )
anchor_top = 1.0
anchor_right = 1.0
anchor_bottom = 1.0
margin_top = -120.0
texture = ExtResource( 1 )
[node name="RichTextLabel" type="RichTextLabel" parent="DialogueBox"]
anchor_right = 1.0
anchor_bottom = 1.0
margin_left = 24.0
margin_top = 12.0
margin_right = -24.0
margin_bottom = -12.0
custom_colors/default_color = Color( 0.196078, 0.2, 0.32549, 1 )
custom_fonts/normal_font = ExtResource( 4 )
[node name="AnimationPlayer" type="AnimationPlayer" parent="DialogueBox"]
anims/DialogueFade = SubResource( 3 )
anims/FinalFade = SubResource( 4 )
anims/InitialFade = SubResource( 1 )
anims/RESET = SubResource( 2 )
[node name="ColorRect" type="ColorRect" parent="."]
anchor_right = 1.0
anchor_bottom = 1.0
color = Color( 0, 0, 0, 1 )
[node name="AudioStreamPlayer" type="AudioStreamPlayer" parent="."]
stream = ExtResource( 5 )
volume_db = -10.0

184
Scenes/Cutscene3.tscn Normal file
View File

@ -0,0 +1,184 @@
[gd_scene load_steps=10 format=2]
[ext_resource path="res://Graphics/UI/DialogueBox.png" type="Texture" id=1]
[ext_resource path="res://Graphics/CGs/panel3.png" type="Texture" id=2]
[ext_resource path="res://Scripts/CutsceneRunner.gd" type="Script" id=3]
[ext_resource path="res://Fonts/luckiest-guy/luckiest-guy.tres" type="DynamicFont" id=4]
[ext_resource path="res://Sounds/Beep.wav" type="AudioStream" id=5]
[sub_resource type="Animation" id=3]
resource_name = "DialogueFade"
length = 2.0
tracks/0/type = "value"
tracks/0/path = NodePath(".:modulate")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/keys = {
"times": PoolRealArray( 0, 0.7, 0.701, 1.2, 2 ),
"transitions": PoolRealArray( 1, 1, 1, 1, 1 ),
"update": 0,
"values": [ Color( 1, 1, 1, 1 ), Color( 1, 1, 1, 0 ), Color( 1, 1, 1, 0 ), Color( 1, 1, 1, 0 ), Color( 1, 1, 1, 1 ) ]
}
tracks/1/type = "method"
tracks/1/path = NodePath("..")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/keys = {
"times": PoolRealArray( 0.7, 2 ),
"transitions": PoolRealArray( 1, 1 ),
"values": [ {
"args": [ ],
"method": "mid_dialogue_fade"
}, {
"args": [ ],
"method": "dialogue_fade_done"
} ]
}
[sub_resource type="Animation" id=4]
resource_name = "FinalFade"
length = 1.5
tracks/0/type = "value"
tracks/0/path = NodePath("../ColorRect:modulate")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/keys = {
"times": PoolRealArray( 0, 1.5 ),
"transitions": PoolRealArray( 1, 1 ),
"update": 0,
"values": [ Color( 1, 1, 1, 0 ), Color( 1, 1, 1, 1 ) ]
}
tracks/1/type = "method"
tracks/1/path = NodePath("..")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/keys = {
"times": PoolRealArray( 1.5 ),
"transitions": PoolRealArray( 1 ),
"values": [ {
"args": [ ],
"method": "final_fade_done"
} ]
}
[sub_resource type="Animation" id=1]
resource_name = "InitialFade"
length = 2.25
tracks/0/type = "value"
tracks/0/path = NodePath(".:modulate")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/keys = {
"times": PoolRealArray( 1.5, 2.2 ),
"transitions": PoolRealArray( 1, 1 ),
"update": 0,
"values": [ Color( 1, 1, 1, 0 ), Color( 1, 1, 1, 1 ) ]
}
tracks/1/type = "value"
tracks/1/path = NodePath("../ColorRect:modulate")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/keys = {
"times": PoolRealArray( 0, 1.5 ),
"transitions": PoolRealArray( 1, 1 ),
"update": 0,
"values": [ Color( 1, 1, 1, 1 ), Color( 1, 1, 1, 0 ) ]
}
tracks/2/type = "method"
tracks/2/path = NodePath("..")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/keys = {
"times": PoolRealArray( 2.2 ),
"transitions": PoolRealArray( 1 ),
"values": [ {
"args": [ ],
"method": "dialogue_fade_done"
} ]
}
[sub_resource type="Animation" id=2]
length = 0.001
tracks/0/type = "value"
tracks/0/path = NodePath(".:modulate")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/keys = {
"times": PoolRealArray( 0 ),
"transitions": PoolRealArray( 1 ),
"update": 0,
"values": [ Color( 1, 1, 1, 0 ) ]
}
tracks/1/type = "value"
tracks/1/path = NodePath("../ColorRect:modulate")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/keys = {
"times": PoolRealArray( 0 ),
"transitions": PoolRealArray( 1 ),
"update": 0,
"values": [ Color( 1, 1, 1, 1 ) ]
}
[node name="Control" type="Control"]
anchor_right = 1.0
anchor_bottom = 1.0
script = ExtResource( 3 )
cutscene_name = "Cutscene3"
next_scene_to_load = "TitleScreen"
[node name="CG" type="TextureRect" parent="."]
margin_right = 40.0
margin_bottom = 40.0
texture = ExtResource( 2 )
[node name="DialogueBox" type="TextureRect" parent="."]
modulate = Color( 1, 1, 1, 0 )
anchor_top = 1.0
anchor_right = 1.0
anchor_bottom = 1.0
margin_top = -120.0
texture = ExtResource( 1 )
[node name="RichTextLabel" type="RichTextLabel" parent="DialogueBox"]
anchor_right = 1.0
anchor_bottom = 1.0
margin_left = 24.0
margin_top = 12.0
margin_right = -24.0
margin_bottom = -12.0
custom_colors/default_color = Color( 0.196078, 0.2, 0.32549, 1 )
custom_fonts/normal_font = ExtResource( 4 )
[node name="AnimationPlayer" type="AnimationPlayer" parent="DialogueBox"]
anims/DialogueFade = SubResource( 3 )
anims/FinalFade = SubResource( 4 )
anims/InitialFade = SubResource( 1 )
anims/RESET = SubResource( 2 )
[node name="ColorRect" type="ColorRect" parent="."]
anchor_right = 1.0
anchor_bottom = 1.0
color = Color( 0, 0, 0, 1 )
[node name="AudioStreamPlayer" type="AudioStreamPlayer" parent="."]
stream = ExtResource( 5 )
volume_db = -10.0

View File

@ -1,4 +1,4 @@
[gd_scene load_steps=10 format=2]
[gd_scene load_steps=15 format=2]
[ext_resource path="res://Tile Sets/SnowySlopes.tres" type="TileSet" id=1]
[ext_resource path="res://Units/DownhillAutoscrollerPlayer.tscn" type="PackedScene" id=2]
@ -6,6 +6,11 @@
[ext_resource path="res://Graphics/Animations/Background.tres" type="Texture" id=4]
[ext_resource path="res://Scripts/GameScene.gd" type="Script" id=5]
[ext_resource path="res://Units/DownhillAutoscrollerRivalMystia.tscn" type="PackedScene" id=6]
[ext_resource path="res://Sounds/pichuun.mp3" type="AudioStream" id=7]
[ext_resource path="res://Sounds/whoosh-6316.mp3" type="AudioStream" id=8]
[ext_resource path="res://Sounds/sfx_jump_07-80241.mp3" type="AudioStream" id=9]
[ext_resource path="res://Sounds/land2-43790.mp3" type="AudioStream" id=10]
[ext_resource path="res://Sounds/ski-67717.wav" type="AudioStream" id=11]
[sub_resource type="Animation" id=3]
resource_name = "InitialFade"
@ -127,3 +132,20 @@ color = Color( 0.12549, 0.231373, 0.2, 1 )
anims/InitialFade = SubResource( 3 )
anims/PitTransition = SubResource( 1 )
anims/RESET = SubResource( 2 )
[node name="HitAudioStreamPlayer" type="AudioStreamPlayer" parent="."]
stream = ExtResource( 7 )
volume_db = -4.0
[node name="SpinAudioStreamPlayer" type="AudioStreamPlayer" parent="."]
stream = ExtResource( 8 )
[node name="JumpAudioStreamPlayer" type="AudioStreamPlayer" parent="."]
stream = ExtResource( 9 )
[node name="LandAudioStreamPlayer" type="AudioStreamPlayer" parent="."]
stream = ExtResource( 10 )
volume_db = 4.0
[node name="SnowAudioStreamPlayer" type="AudioStreamPlayer" parent="."]
stream = ExtResource( 11 )

View File

@ -49,7 +49,7 @@ margin_bottom = 252.0
rect_min_size = Vector2( 360, 60 )
flat = false
script = ExtResource( 5 )
scene_to_load = "res://Scenes/DownhillAutoscroller.tscn"
scene_to_load = "res://Scenes/Cutscene1.tscn"
[node name="ManualButton" parent="Menu/CenterRow/Buttons" instance=ExtResource( 2 )]
margin_top = 272.0
@ -58,6 +58,9 @@ margin_bottom = 332.0
rect_min_size = Vector2( 360, 60 )
flat = false
script = ExtResource( 5 )
__meta__ = {
"_edit_use_anchors_": false
}
scene_to_load = "res://Scenes/TitleScreen/Manual.tscn"
[node name="CreditsButton" parent="Menu/CenterRow/Buttons" instance=ExtResource( 3 )]
@ -67,6 +70,9 @@ margin_bottom = 412.0
rect_min_size = Vector2( 360, 60 )
flat = false
script = ExtResource( 5 )
__meta__ = {
"_edit_use_anchors_": false
}
scene_to_load = "res://Scenes/TitleScreen/Credits.tscn"
[node name="CenterContainer" type="CenterContainer" parent="Menu/CenterRow"]

View File

@ -10,9 +10,6 @@ font_data = ExtResource( 1 )
margin_right = 784.0
margin_bottom = 20.0
flat = true
__meta__ = {
"_edit_use_anchors_": false
}
[node name="Label" type="Label" parent="."]
margin_right = 40.0

View File

@ -8,6 +8,8 @@ extends Control
# Called when the node enters the scene tree for the first time.
func _ready():
MusicController.play_intro_snow()
for button in $Menu/CenterRow/Buttons.get_children():
button.connect("pressed", self, "_on_Button_pressed", [button.scene_to_load])

View File

@ -3,7 +3,7 @@ extends Control
export var cutscene_name : String
export var next_scene_to_load : String
var text_speed : int = 24
var text_speed : int = 30
var text_label : RichTextLabel
var animation_player : AnimationPlayer
@ -20,11 +20,23 @@ var dialogue_fading_in : bool = true
var cutscene_directory = {
"Cutscene1": [
["Hello.",
"How are you?"],
["Kyouko: Woooow.",
"Kyouko: I can't believe it's taken this long for them to make a stupid game about me snowboarding."],
["I'm fine.",
"How about you?"],
["Reimu: Is the dialogue completed at least?",
"Kyouko: They're still working on it.",
"Reimu: Oh. Wake me up when they're finished."],
["Kyouko: Gee, I hope they get the game done soon.",
"Kyouko: I really wanna go snowboarding now."],
["Kyouko: Like I reaaally wanna. Really."],
],
"Cutscene2": [
["Kyouko: Ain't got nothing going on in Cutscene 2 huh."],
],
"Cutscene3": [
["Kyouko: Cutscene 3 too."],
],
}
@ -61,7 +73,7 @@ func final_fade_done():
func _process(delta):
this_text = cutscene_directory[cutscene_name][cutscene_index][cutscene_sub_index]
if Input.is_action_just_released("mouse_click"):
if Input.is_action_just_released("mouse_click") and not dialogue_fading_in:
if chars_rendered < this_text.length():
message_time_elapsed = 60
else:

View File

@ -55,6 +55,8 @@ var rng = RandomNumberGenerator.new()
# Called when the node enters the scene tree for the first time.
func _ready():
MusicController.play_kyouko_snow()
units.append(get_node("Player"))
player = units[0]
player.init_unit_w_scene(self)

View File

@ -13,6 +13,21 @@ var boost : float = 0 # to movement speed
var respawn_pos : Vector2
var hit_audiostream_player : AudioStreamPlayer
var spin_audiostream_player : AudioStreamPlayer
var jump_audiostream_player : AudioStreamPlayer
var land_audiostream_player : AudioStreamPlayer
var snow_audiostream_player : AudioStreamPlayer
func init_unit_w_scene(scene):
.init_unit_w_scene(scene)
hit_audiostream_player = scene.get_node("HitAudioStreamPlayer")
spin_audiostream_player = scene.get_node("SpinAudioStreamPlayer")
jump_audiostream_player = scene.get_node("JumpAudioStreamPlayer")
land_audiostream_player = scene.get_node("LandAudioStreamPlayer")
snow_audiostream_player = scene.get_node("SnowAudioStreamPlayer")
func execute_actions(delta):
.execute_actions(delta)
for action_num in Constants.UNIT_TYPE_ACTIONS[Constants.UnitType.PLAYER]:
@ -26,6 +41,8 @@ func execute_actions(delta):
pass
func spin(delta):
if (get_current_action() != Constants.UnitCurrentAction.SPINNING):
spin_audiostream_player.play()
set_current_action(Constants.UnitCurrentAction.SPINNING)
boost += boost_per_second * delta
current_sprite.visible = false
@ -49,6 +66,11 @@ func move():
elif last_contacted_map_elem_type == Constants.MapElemType.SLOPE_LEFT:
set_sprite(Constants.SpriteClass.WALK, 4)
func jump():
if get_current_action() != Constants.UnitCurrentAction.JUMPING:
jump_audiostream_player.play()
.jump()
func reset_current_action():
.reset_current_action()
if get_current_action() == Constants.UnitCurrentAction.SPINNING:
@ -58,6 +80,8 @@ func reset_current_action():
get_node("SpinningSprite").rotation = 0
.handle_idle()
current_sprite.visible = true
else:
spin_audiostream_player.stop()
func custom_inputs():
if scene.input_table[Constants.PlayerInput.GBA_B][scene.I_T_JUST_PRESSED]:
@ -154,6 +178,11 @@ func hit(dir : int):
set_action(Constants.ActionType.RECOIL)
set_current_action(Constants.UnitCurrentAction.RECOILING)
set_unit_condition(Constants.UnitCondition.MOVING_STATUS, Constants.UnitMovingStatus.IDLE)
get_node("SpinningSprite").visible = false
get_node("SpinningSprite").rotation = 0
hit_audiostream_player.play()
# override super class's RECOIL_PUSHBACK
func handle_recoil():
@ -166,9 +195,11 @@ func handle_recoil():
func landed():
get_node("SpinningSprite").visible = false
get_node("SpinningSprite").rotation = 0
land_audiostream_player.play()
if get_current_action() == Constants.UnitCurrentAction.SPINNING:
hit(Constants.Direction.RIGHT)
boost = 0
spin_audiostream_player.stop()
return
target_move_speed += boost
boost = 0
@ -206,6 +237,11 @@ func react(delta):
spectator_cam.make_current()
var anim_player : AnimationPlayer = scene.find_node("PitTransitionPlayer")
anim_player.play("PitTransition")
if get_condition(Constants.UnitCondition.IS_ON_GROUND, true) and h_speed > 3:
if not snow_audiostream_player.playing:
snow_audiostream_player.play()
else:
snow_audiostream_player.stop()
func respawn_from_pit():
pos = respawn_pos

BIN
Sounds/land2-43790.mp3 Normal file

Binary file not shown.

View File

@ -0,0 +1,15 @@
[remap]
importer="mp3"
type="AudioStreamMP3"
path="res://.import/land2-43790.mp3-08d329cdc8778c1f01e3c5943f95640e.mp3str"
[deps]
source_file="res://Sounds/land2-43790.mp3"
dest_files=[ "res://.import/land2-43790.mp3-08d329cdc8778c1f01e3c5943f95640e.mp3str" ]
[params]
loop=false
loop_offset=0

BIN
Sounds/pichuun.mp3 Normal file

Binary file not shown.

15
Sounds/pichuun.mp3.import Normal file
View File

@ -0,0 +1,15 @@
[remap]
importer="mp3"
type="AudioStreamMP3"
path="res://.import/pichuun.mp3-597282f5c51b34396ee2c36de78d600b.mp3str"
[deps]
source_file="res://Sounds/pichuun.mp3"
dest_files=[ "res://.import/pichuun.mp3-597282f5c51b34396ee2c36de78d600b.mp3str" ]
[params]
loop=false
loop_offset=0

Binary file not shown.

View File

@ -0,0 +1,15 @@
[remap]
importer="mp3"
type="AudioStreamMP3"
path="res://.import/sfx_jump_07-80241.mp3-878187d74ba161ca3d4bbaa6cf06aebc.mp3str"
[deps]
source_file="res://Sounds/sfx_jump_07-80241.mp3"
dest_files=[ "res://.import/sfx_jump_07-80241.mp3-878187d74ba161ca3d4bbaa6cf06aebc.mp3str" ]
[params]
loop=false
loop_offset=0

BIN
Sounds/ski-67717.wav Normal file

Binary file not shown.

View File

@ -0,0 +1,23 @@
[remap]
importer="wav"
type="AudioStreamSample"
path="res://.import/ski-67717.wav-2b20c36d1051f75f3627e6c510169fff.sample"
[deps]
source_file="res://Sounds/ski-67717.wav"
dest_files=[ "res://.import/ski-67717.wav-2b20c36d1051f75f3627e6c510169fff.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=2
edit/loop_begin=0
edit/loop_end=-1
compress/mode=0

BIN
Sounds/whoosh-6316.mp3 Normal file

Binary file not shown.

View File

@ -0,0 +1,15 @@
[remap]
importer="mp3"
type="AudioStreamMP3"
path="res://.import/whoosh-6316.mp3-e19872bf94467833a500e7454df7b6b0.mp3str"
[deps]
source_file="res://Sounds/whoosh-6316.mp3"
dest_files=[ "res://.import/whoosh-6316.mp3-e19872bf94467833a500e7454df7b6b0.mp3str" ]
[params]
loop=true
loop_offset=0

View File

@ -54,6 +54,10 @@ config/name="Moriya's Wanton Winter Wager"
run/main_scene="res://Scenes/DownhillAutoscroller.tscn"
config/icon="res://icon.png"
[autoload]
MusicController="*res://Scenes/Autoloads/MusicController.tscn"
[display]
window/size/height=768