source: Studio/Main_Menu.gd@ 315bf24

sandbox
Last change on this file since 315bf24 was f7b09c8, checked in by Kevin Chapman <victory2b@…>, 4 years ago

First Draft of world test with working movement and loading screen.

  • Property mode set to 100644
File size: 4.0 KB
RevLine 
[f7b09c8]1extends Control
2
3# NOTE: The code here is only briefly explained in the tutorial, nor
4# does the code have very many comments!
5# This is because it does not really relate to making a FPS.
6
7var start_menu
8var level_select_menu
9var options_menu
10
11export (String, FILE) var testing_area_scene
12export (String, FILE) var space_level_scene
13export (String, FILE) var ruins_level_scene
14
15
16func _ready():
17 start_menu = $Start_Menu
18 level_select_menu = $Level_Select_Menu
19 options_menu = $Options_Menu
20
21 # Connect all of the start menu buttons
22 $Start_Menu/Button_Start.connect("pressed", self, "start_menu_button_pressed", ["start"])
23 $Start_Menu/Button_Open_Godot.connect("pressed", self, "start_menu_button_pressed", ["open_godot"])
24 $Start_Menu/Button_Options.connect("pressed", self, "start_menu_button_pressed", ["options"])
25 $Start_Menu/Button_Quit.connect("pressed", self, "start_menu_button_pressed", ["quit"])
26
27 # Connect all of the level select menu buttons
28 # $Level_Select_Menu/Button_Back.connect("pressed", self, "level_select_menu_button_pressed", ["back"])
29 # $Level_Select_Menu/Button_Level_Testing_Area.connect("pressed", self, "level_select_menu_button_pressed", ["testing_scene"])
30 # $Level_Select_Menu/Button_Level_Space.connect("pressed", self, "level_select_menu_button_pressed", ["space_level"])
31 # $Level_Select_Menu/Button_Level_Ruins.connect("pressed", self, "level_select_menu_button_pressed", ["ruins_level"])
32
33 # Connect all of the options menu buttons
34 $Options_Menu/Button_Back.connect("pressed", self, "options_menu_button_pressed", ["back"])
35 $Options_Menu/Button_Fullscreen.connect("pressed", self, "options_menu_button_pressed", ["fullscreen"])
36 $Options_Menu/Check_Button_VSync.connect("pressed", self, "options_menu_button_pressed", ["vsync"])
37 $Options_Menu/Check_Button_Debug.connect("pressed", self, "options_menu_button_pressed", ["debug"])
38
39 # Some times when returning to the title screen the mouse is still captured even though it shouldn't be.
40 # To prevent this from breaking the game, we just set it here too
41 Input.set_mouse_mode(Input.MOUSE_MODE_VISIBLE)
42
43 # Get the globals singleton
44 var globals = get_node("/root/Globals")
45 # Get the mouse and joypad sensitivity
46 $Options_Menu/HSlider_Mouse_Sensitivity.value = globals.mouse_sensitivity
47 $Options_Menu/HSlider_Joypad_Sensitivity.value = globals.joypad_sensitivity
48
49
50func start_menu_button_pressed(button_name):
51 if button_name == "start":
52 get_node("/root/Globals").load_new_scene(testing_area_scene)
53 # level_select_menu.visible = true
54 # start_menu.visible = false
55 elif button_name == "open_godot":
56 OS.shell_open("https://gauss.extollit.com/revenant/project/")
57 elif button_name == "options":
58 options_menu.visible = true
59 start_menu.visible = false
60 elif button_name == "quit":
61 get_tree().quit()
62
63
64func level_select_menu_button_pressed(button_name):
65 if button_name == "back":
66 start_menu.visible = true
67 level_select_menu.visible = false
68 elif button_name == "testing_scene":
69 set_mouse_and_joypad_sensitivity()
70 get_node("/root/Globals").load_new_scene(testing_area_scene)
71 elif button_name == "space_level":
72 set_mouse_and_joypad_sensitivity()
73 get_node("/root/Globals").load_new_scene(space_level_scene)
74 elif button_name == "ruins_level":
75 set_mouse_and_joypad_sensitivity()
76 get_node("/root/Globals").load_new_scene(ruins_level_scene)
77
78
79func options_menu_button_pressed(button_name):
80 if button_name == "back":
81 start_menu.visible = true
82 options_menu.visible = false
83 elif button_name == "fullscreen":
84 OS.window_fullscreen = !OS.window_fullscreen
85 elif button_name == "vsync":
86 OS.vsync_enabled = $Options_Menu/Check_Button_VSync.pressed
87 elif button_name == "debug":
88 get_node("/root/Globals").set_debug_display($Options_Menu/Check_Button_Debug.pressed)
89
90
91func set_mouse_and_joypad_sensitivity():
92 # Get the globals singleton
93 var globals = get_node("/root/Globals")
94 # Set the mouse and joypad sensitivity
95 globals.mouse_sensitivity = $Options_Menu/HSlider_Mouse_Sensitivity.value
96 globals.joypad_sensitivity = $Options_Menu/HSlider_Joypad_Sensitivity.value
Note: See TracBrowser for help on using the repository browser.