Home > RGSS Script Reference > Scene_Title
Scene_Title
Inherits from: None
Description: This class handles the title screen.
class Scene_Title
# ------------------------------------
def main
if $BTEST
battle_test
return
end
$data_actors = load_data("Data/Actors.rxdata")
$data_classes = load_data("Data/Classes.rxdata")
$data_skills = load_data("Data/Skills.rxdata")
$data_items = load_data("Data/Items.rxdata")
$data_weapons = load_data("Data/Weapons.rxdata")
$data_armors = load_data("Data/Armors.rxdata")
$data_enemies = load_data("Data/Enemies.rxdata")
$data_troops = load_data("Data/Troops.rxdata")
$data_states = load_data("Data/States.rxdata")
$data_animations = load_data("Data/Animations.rxdata")
$data_tilesets = load_data("Data/Tilesets.rxdata")
$data_common_events = load_data("Data/CommonEvents.rxdata")
$data_system = load_data("Data/System.rxdata")
$game_system = Game_System.new
@sprite = Sprite.new
@sprite.bitmap = RPG::Cache.title($data_system.title_name)
s1 = "New Game"
s2 = "Continue"
s3 = "Shutdown"
@command_window = Window_Command.new(192, [s1, s2, s3])
@command_window.back_opacity = 160
@command_window.x = 320 - @command_window.width / 2
@command_window.y = 288
@continue_enabled = false
for i in 0..3
if FileTest.exist?("Save#{i+1}.rxdata")
@continue_enabled = true
end
end
if @continue_enabled
@command_window.index = 1
else
@command_window.disable_item(1)
end
$game_system.bgm_play($data_system.title_bgm)
Audio.me_stop
Audio.bgs_stop
Graphics.transition
loop do
Graphics.update
Input.update
update
if $scene != self
break
end
end
Graphics.freeze
@command_window.dispose
@sprite.bitmap.dispose
@sprite.dispose
end
# ------------------------------------
def update
@command_window.update
if Input.trigger?(Input::C)
case @command_window.index
when 0
command_new_game
when 1
command_continue
when 2
command_shutdown
end
end
end
# ------------------------------------
def command_new_game
$game_system.se_play($data_system.decision_se)
Audio.bgm_stop
Graphics.frame_count = 0
$game_temp = Game_Temp.new
$game_system = Game_System.new
$game_switches = Game_Switches.new
$game_variables = Game_Variables.new
$game_self_switches = Game_SelfSwitches.new
$game_screen = Game_Screen.new
$game_actors = Game_Actors.new
$game_party = Game_Party.new
$game_troop = Game_Troop.new
$game_map = Game_Map.new
$game_player = Game_Player.new
$game_party.setup_starting_members
$game_map.setup($data_system.start_map_id)
$game_player.moveto($data_system.start_x, $data_system.start_y)
$game_player.refresh
$game_map.autoplay
$game_map.update
$scene = Scene_Map.new
end
# ------------------------------------
def command_continue
unless @continue_enabled
$game_system.se_play($data_system.buzzer_se)
return
end
$game_system.se_play($data_system.decision_se)
$scene = Scene_Load.new
end
# ------------------------------------
def command_shutdown
$game_system.se_play($data_system.decision_se)
Audio.bgm_fade(800)
Audio.bgs_fade(800)
Audio.me_fade(800)
$scene = nil
end
# ------------------------------------
def battle_test
$data_actors = load_data("Data/BT_Actors.rxdata")
$data_classes = load_data("Data/BT_Classes.rxdata")
$data_skills = load_data("Data/BT_Skills.rxdata")
$data_items = load_data("Data/BT_Items.rxdata")
$data_weapons = load_data("Data/BT_Weapons.rxdata")
$data_armors = load_data("Data/BT_Armors.rxdata")
$data_enemies = load_data("Data/BT_Enemies.rxdata")
$data_troops = load_data("Data/BT_Troops.rxdata")
$data_states = load_data("Data/BT_States.rxdata")
$data_animations = load_data("Data/BT_Animations.rxdata")
$data_tilesets = load_data("Data/BT_Tilesets.rxdata")
$data_common_events = load_data("Data/BT_CommonEvents.rxdata")
$data_system = load_data("Data/BT_System.rxdata")
Graphics.frame_count = 0
$game_temp = Game_Temp.new
$game_system = Game_System.new
$game_switches = Game_Switches.new
$game_variables = Game_Variables.new
$game_self_switches = Game_SelfSwitches.new
$game_screen = Game_Screen.new
$game_actors = Game_Actors.new
$game_party = Game_Party.new
$game_troop = Game_Troop.new
$game_map = Game_Map.new
$game_player = Game_Player.new
$game_party.setup_battle_test_members
$game_temp.battle_troop_id = $data_system.test_troop_id
$game_temp.battle_can_escape = true
$game_map.battleback_name = $data_system.battleback_name
$game_system.se_play($data_system.battle_start_se)
$game_system.bgm_play($game_system.battle_bgm)
$scene = Scene_Battle.new
end
end
|
Sprite: The sprite object that holds the title screen picture.
Command_Window: A Window_Command object that shows the title screen commands.
Continue_Enabled: This flag is set if at least one save file exists for this game. Otherwise, it is not set.
Main
Arguments: None
Local Variables: None
How it Works: This is the main method for this class. The first thing the method checks is whether the global battle test flag $BTEST is set. If it is, then the Battle_Test method is called instead of proceeding. If it is not a battle test, the series load_data commands transfer the data entered into the database from the data files stored into the project folder to main memory. The title screen picture is then loaded into the @sprite instance variable. The next three statements set up the three commands "New Game", "Continue" and "Shutdown". The @command_window is then created with the commands loaded into the menu. The for i in 0..3 loop determines whether or not at least one save file exists for this game by testing to see if the file "Save#{i+1}.rxdata" exists. If any one of these files exists, then the value of @continue_enabled is set to true. If continuing is allowed, then the default index of the command window is set to 1, so that when the player first sees the command menu, the "Continue" choice will be selected. If continuing is not enabled, then index 1 (Continue) is disabled. The next three statements start the title BGM playing and stop any BGS or ME that may be playing. Next, we come to the main loop seen in every "Scene" class. It updates the graphics, checks for new input, and then updates the window contents until the value of $Scene changes (the player chooses a command). Once the scene changes, the rest of the method disposes of the title screen picture and command window.
Update
Arguments: None
Local Variables: None
How it Works: This method responds to user input from the command window. If the user has pressed "C" (decision key), then the index of the window selection is checked. If the index is 0 (New Game), then Command_New_Game is called. If the index is 1 (Continue), then Command_Continue is called. If the index is 2 (Shutdown), then Command_Shutdown is called.
Command_New_Game
Arguments: None
Local Variables: None
How it Works: This method sets up a new game when the user selects "New Game" from the command window. First, the decision sound effect is played. Then, the BGM is stopped. The next set of commands initializes some global classes of which there are only one instance. It then sets up the starting party members, sets up the starting map, places the player on the map, and then transfers control to the map.
Command_Continue
Arguments: None
Local Variables: None
How it Works: This method responds to the user selecting "Continue" from the main menu. If the "Continue" option is disabled because @continue_enabled is false, then the buzzer sound effect is played. If the "Continue" option is enabled, then the decision sound is played and control is transfered to the loading screen.
Command_Shutdown
Arguments: None
Local Variables: None
How it Works: This method responds to the user selecting "Shutdown" from the command menu. The decision sound effect is played, and then the BGM, BGS, and ME fade in 0.8 seconds. The value of $Scene is then changed to nil. Whenever the value of $Scene becomes nil, the game player exits.
Battle_Test
Arguments: None
Local Variables: None
How it Works: This method sets up a battle test. The first set of statements loads the data from the database into main memory. Then, the global classes are initialized. Next, the "battle test members" that were set up in the battle test window are initialized. The ID of the monster group to be battled in the battle test is then loaded into $game_temp.battle_troop_id. The value of $game_temp.battle_can_escape is set to true because battle test battles can be escaped from. The battle background is then set up, the battle start sound effect plays, the battle BGM plays, and then control is transferred to the battle screen.
|
|