RPG Maker
 

 Username:
 Password:
   Not a member? Register!

Home > RGSS Script Reference > Scene_Title

Scene_Title


Inherits from: None

Description: This class handles the title screen.

Code


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

Properties


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.

Methods


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. 
Syntax
@
@@
$
alias
[array index]
attr_accessor
attr_reader
attr_writer
class
def
do
ensure
for
if
[iterator]
key => value
new
next
nil
redo
require
return
rescue
self
super
undef
unless
until
while
yield

Classes
Arrow_Actor
Arrow_Base
Arrow_Enemy
Game_Actor
Game_Actors
Game_BattleAct
Game_Battler
Game_Character
Game_Common
Game_Enemy
Game_Event
Game_Map
Game_Party
Game_Picture
Game_Player
Game_Screen
Game_SlfSwitch
Game_Switches
Game_System
Game_Troop
Game_Variables
Interpreter
Scene_Debug
Scene_End
Scene_Equip
Scene_File
Scene_Gameover
Scene_Item
Scene_Load
Scene_Map
Scene_Menu
Scene_Name
Scene_Save
Scene_Shop
Scene_Skill
Scene_Status
Scene_Title
Sprite_Battler
Sprite_Character
Sprite_Picture
Sprite_Timer
Spriteset_Battle
Spriteset_Map
Window_Base
Window_Battleresult
Window_Battlestatus
Window_Command
Window_DebugLeft
Window_DebugRight
Window_EquipItem
Window_EquipLeft
Window_EquipRight
Window_Gold
Window_Help
Window_InputNumb
Window_Item
Window_MenuStatus
Window_Message
Window_NameEdit
Window_NameInput
Window_PartyCom
Window_PlayTime
Window_SaveFile
Window_Selectable
Window_ShopBuy
Window_ShopCom
Window_ShopNum
Window_ShopSell
Window_ShopStatus
Window_Skill
Window_SkillStatus
Window_Status
Window_Steps
Window_Target

Other
Class Hierarchy
Global Variables


RPG RPG Revolution
RPG RPG Revolution is your #1 stop for game development and console RPG games, as well as those created by people like you. Link to us to support us, so we may grow to be better website community for you.

By continuing past this page, and by your continued use of this site, you agree to be bound by and abide by the Terms of Use.
©2004 - 2008 RPG RPG Revolution, All Rights Reserved. Contact Us · Privacy Policy · Legal Disclaimer
eXTReMe Tracker