Merge pull request #1 from CSE-4392-Game-Design/with-music-sound

added sounds and music to menu/splash screen
This commit is contained in:
2021-11-16 20:02:24 -06:00
committed by GitHub
12 changed files with 165 additions and 66 deletions

View File

@@ -4,10 +4,30 @@ signal complete(option)
func _on_new_game_button_pressed() -> void:
emit_signal('complete', 'new game')
return
emit_signal('complete', 'new game')
return
func _on_quit_button_pressed() -> void:
emit_signal('complete', 'quit')
return
emit_signal('complete', 'quit')
return
func _on_Quit_Button_mouse_entered() -> void:
get_node("Menu-Select").play(0.0)
return
func _on_Credits_Button_mouse_entered() -> void:
get_node("Menu-Select").play(0.0)
return
func _on_Settings_Button_mouse_entered() -> void:
get_node("Menu-Select").play(0.0)
return
func _on_New_Game_Button_mouse_entered() -> void:
get_node("Menu-Select").play(0.0)
return

View File

@@ -1,4 +1,4 @@
[gd_scene load_steps=16 format=2]
[gd_scene load_steps=18 format=2]
[ext_resource path="res://Sprites/Settings_Button_Normal.png" type="Texture" id=1]
[ext_resource path="res://Sprites/Continue_Button_Hover.png" type="Texture" id=2]
@@ -14,6 +14,8 @@
[ext_resource path="res://Sprites/Main_Menu_Background.png" type="Texture" id=12]
[ext_resource path="res://Resources/Ash.tres" type="DynamicFontData" id=13]
[ext_resource path="res://Main Menu.gd" type="Script" id=14]
[ext_resource path="res://Music/Interface/main-menu.mp3" type="AudioStream" id=15]
[ext_resource path="res://Sounds/Interface/menu-select.wav" type="AudioStream" id=16]
[sub_resource type="DynamicFont" id=1]
size = 20
@@ -120,5 +122,19 @@ margin_bottom = 15.0
texture_normal = ExtResource( 8 )
texture_hover = ExtResource( 11 )
[node name="BGM" type="AudioStreamPlayer" parent="."]
pause_mode = 2
stream = ExtResource( 15 )
volume_db = -14.136
autoplay = true
[node name="Menu-Select" type="AudioStreamPlayer" parent="."]
stream = ExtResource( 16 )
volume_db = -15.146
[connection signal="mouse_entered" from="Menu Items/VBoxContainer/CenterContainer/Menu Options/CenterContainer2/New Game Button" to="." method="_on_New_Game_Button_mouse_entered"]
[connection signal="pressed" from="Menu Items/VBoxContainer/CenterContainer/Menu Options/CenterContainer2/New Game Button" to="." method="_on_new_game_button_pressed"]
[connection signal="mouse_entered" from="Menu Items/VBoxContainer/CenterContainer/Menu Options/CenterContainer3/Settings Button" to="." method="_on_Settings_Button_mouse_entered"]
[connection signal="mouse_entered" from="Menu Items/VBoxContainer/CenterContainer/Menu Options/CenterContainer4/Credits Button" to="." method="_on_Credits_Button_mouse_entered"]
[connection signal="mouse_entered" from="Menu Items/VBoxContainer/CenterContainer/Menu Options/CenterContainer5/Quit Button" to="." method="_on_Quit_Button_mouse_entered"]
[connection signal="pressed" from="Menu Items/VBoxContainer/CenterContainer/Menu Options/CenterContainer5/Quit Button" to="." method="_on_quit_button_pressed"]

64
Main.gd
View File

@@ -6,56 +6,56 @@ export var world_path: String
func _ready() -> void:
var splash_screen: Node = play_splash_screen()
yield(splash_screen, 'complete')
splash_screen = null
var splash_screen: Node = play_splash_screen()
yield(splash_screen, 'complete')
splash_screen = null
var main_menu: Node = play_main_menu()
yield(main_menu, 'complete')
free_connected_node(main_menu, 'main_menu_option')
main_menu = null
return
var main_menu: Node = play_main_menu()
yield(main_menu, 'complete')
free_connected_node(main_menu, 'main_menu_option')
main_menu = null
return
func play_splash_screen() -> Node:
var splash_screen: Node = load(splash_screen_path).instance()
if splash_screen.connect('complete', self, 'free_connected_node', [splash_screen, 'free_connected_node']) != OK:
print('ERROR: Splash Screen "complete" signal already connected.')
var splash_screen: Node = load(splash_screen_path).instance()
if splash_screen.connect('complete', self, 'free_connected_node', [splash_screen, 'free_connected_node']) != OK:
print('ERROR: Splash Screen "complete" signal already connected.')
add_child(splash_screen)
return splash_screen
add_child(splash_screen)
return splash_screen
func play_main_menu() -> Node:
var main_menu: Node = load(main_menu_path).instance()
if main_menu.connect('complete', self, 'main_menu_option') != OK:
print('ERROR: Main Menu "quit" signal already connected.')
var main_menu: Node = load(main_menu_path).instance()
if main_menu.connect('complete', self, 'main_menu_option') != OK:
print('ERROR: Main Menu "quit" signal already connected.')
add_child(main_menu)
return main_menu
add_child(main_menu)
return main_menu
func main_menu_option(option: String) -> void:
if option == 'new game':
new_game()
elif option == 'quit':
quit_game()
return
if option == 'new game':
new_game()
elif option == 'quit':
quit_game()
return
func free_connected_node(node: Node, connected_function: String) -> void:
node.disconnect('complete', self, connected_function)
remove_child(node)
node.queue_free()
return
node.disconnect('complete', self, connected_function)
remove_child(node)
node.queue_free()
return
func new_game() -> void:
if get_tree().change_scene(world_path) != OK:
print('ERROR: Main failed to change scene to World.')
return
if get_tree().change_scene(world_path) != OK:
print('ERROR: Main failed to change scene to World.')
return
func quit_game() -> void:
get_tree().quit()
return
get_tree().quit()
return

Binary file not shown.

View File

@@ -0,0 +1,15 @@
[remap]
importer="mp3"
type="AudioStreamMP3"
path="res://.import/main-menu.mp3-aab7bca33746995bd827b1be5c058ba3.mp3str"
[deps]
source_file="res://Music/Interface/main-menu.mp3"
dest_files=[ "res://.import/main-menu.mp3-aab7bca33746995bd827b1be5c058ba3.mp3str" ]
[params]
loop=true
loop_offset=0

BIN
Music/Interface/splash.wav Normal file

Binary file not shown.

View File

@@ -0,0 +1,21 @@
[remap]
importer="wav"
type="AudioStreamSample"
path="res://.import/splash.wav-56b87e9c12b1da11cd6e9b9b251c6bbe.sample"
[deps]
source_file="res://Music/Interface/splash.wav"
dest_files=[ "res://.import/splash.wav-56b87e9c12b1da11cd6e9b9b251c6bbe.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=false
compress/mode=0

View File

@@ -8,17 +8,17 @@ var velocity: Vector2 = Vector2.ZERO
func _physics_process(delta) -> void:
var input_vector: Vector2 = Vector2.ZERO
var input_vector: Vector2 = Vector2.ZERO
input_vector.x = Input.get_action_strength('player_right') - Input.get_action_strength('player_left')
input_vector.y = Input.get_action_strength('player_down') - Input.get_action_strength('player_up')
input_vector = input_vector.normalized()
input_vector.x = Input.get_action_strength('player_right') - Input.get_action_strength('player_left')
input_vector.y = Input.get_action_strength('player_down') - Input.get_action_strength('player_up')
input_vector = input_vector.normalized()
if input_vector != Vector2.ZERO:
$AnimationTree.set('parameters/Idle/blend_position', input_vector)
velocity = velocity.move_toward(input_vector * MAX_SPEED, ACCELERATION * delta)
else:
velocity = velocity.move_toward(Vector2.ZERO, FRICTION * delta)
if input_vector != Vector2.ZERO:
$AnimationTree.set('parameters/Idle/blend_position', input_vector)
velocity = velocity.move_toward(input_vector * MAX_SPEED, ACCELERATION * delta)
else:
velocity = velocity.move_toward(Vector2.ZERO, FRICTION * delta)
velocity = move_and_slide(velocity)
return
velocity = move_and_slide(velocity)
return

Binary file not shown.

View File

@@ -0,0 +1,21 @@
[remap]
importer="wav"
type="AudioStreamSample"
path="res://.import/menu-select.wav-0365203aec745be2bb480afa89696728.sample"
[deps]
source_file="res://Sounds/Interface/menu-select.wav"
dest_files=[ "res://.import/menu-select.wav-0365203aec745be2bb480afa89696728.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=false
compress/mode=0

View File

@@ -4,26 +4,26 @@ signal complete
func _ready() -> void:
# Fade in
if not $Tween.interpolate_property(self, 'self_modulate:a', 0, 1, 3, Tween.TRANS_LINEAR, Tween.EASE_IN):
print('ERROR: Splash Screen fade in animation has errors.')
if not $Tween.start():
print('ERROR: Splash Screen fade in animation failed to start.')
# Fade in
if not $Tween.interpolate_property(self, 'self_modulate:a', 0, 1, 3, Tween.TRANS_LINEAR, Tween.EASE_IN):
print('ERROR: Splash Screen fade in animation has errors.')
if not $Tween.start():
print('ERROR: Splash Screen fade in animation failed to start.')
yield($Tween, 'tween_completed') # Wait for fade in to complete
yield($Tween, 'tween_completed') # Wait for fade in to complete
# Fade out
if not $Tween.interpolate_property(self, 'self_modulate:a', 1, 0, 3, Tween.TRANS_LINEAR, Tween.EASE_OUT, 2):
print('ERROR: Splash Screen fade out animation has errors.')
if not $Tween.start():
print('ERROR: Splash Screen fade out animation failed to start.')
# Fade out
if not $Tween.interpolate_property(self, 'self_modulate:a', 1, 0, 3, Tween.TRANS_LINEAR, Tween.EASE_OUT, 2):
print('ERROR: Splash Screen fade out animation has errors.')
if not $Tween.start():
print('ERROR: Splash Screen fade out animation failed to start.')
yield($Tween, 'tween_completed') # Wait for fade out to complete
emit_signal('complete')
return
yield($Tween, 'tween_completed') # Wait for fade out to complete
emit_signal('complete')
return
func _input(event: InputEvent) -> void:
if event.is_action_pressed('ui_accept'):
emit_signal('complete')
return
if event.is_action_pressed('ui_accept'):
emit_signal('complete')
return

View File

@@ -1,7 +1,8 @@
[gd_scene load_steps=3 format=2]
[gd_scene load_steps=4 format=2]
[ext_resource path="res://Sprites/Splash_Screen.png" type="Texture" id=1]
[ext_resource path="res://Splash Screen.gd" type="Script" id=2]
[ext_resource path="res://Music/Interface/splash.wav" type="AudioStream" id=3]
[node name="Splash Screen" type="Sprite"]
self_modulate = Color( 1, 1, 1, 0 )
@@ -10,3 +11,8 @@ centered = false
script = ExtResource( 2 )
[node name="Tween" type="Tween" parent="."]
[node name="BGM" type="AudioStreamPlayer" parent="."]
stream = ExtResource( 3 )
volume_db = -15.146
autoplay = true