Envision, Create, Share

Welcome to HBGames, a leading amateur game development forum and Discord server. All are welcome, and amongst our ranks you will find experts in their field from all aspects of video game design and development.

Changing the Title Screen

Nolund

Sponsor

Hey guys, took a break from RMXP for a bit, and want to get back into my project. However, I can't seem to remember how to change the title screen. Now, I know how to change the background image, what I mean is to remove the default "New Game" "Continue" and "Quit" box. I had it in an old project (though that was lost *cries*) and I THINK it was done using events, but nothing I've searched for has yielded any results.

If anyone could help me out here I'd appreciate it.
 

Nolund

Sponsor

Thanks brist. I tried searching, thinking to find a tutorial or something, but had NO idea what I was searching for, and got nothing worthwhile in the process (even Google let me down).

It's like learning RMXP all over again, and I only took a break for about 2 months.
 

Jason

Awesome Bro

Well I couldn't find anything after 5 minutes of searching, so I've just spent another 5 minutes editting Scene_Title, and it was a great success !

Here you go;
Code:
 

#==============================================================================

# ** Scene_Title

#------------------------------------------------------------------------------

#  This class performs title screen processing.

#==============================================================================

 

class Scene_Title

  #--------------------------------------------------------------------------

  # * Main Processing

  #--------------------------------------------------------------------------

  def main

    # If battle test

    if $BTEST

      battle_test

      return

    end

    # Load database

    $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")

    # Make system object

    $game_system = Game_System.new

    # Reset frame count for measuring play time

    Graphics.frame_count = 0

    # Make each type of game object

    $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

    # Set up initial party

    $game_party.setup_starting_members

    # Set up initial map position

    $game_map.setup($data_system.start_map_id)

    # Move player to initial position

    $game_player.moveto($data_system.start_x, $data_system.start_y)

    # Refresh player

    $game_player.refresh

    # Run automatic change for BGM and BGS set with map

    $game_map.autoplay

    # Update map (run parallel process event)

    $game_map.update

    # Switch to map screen

    $scene = Scene_Map.new

  end

  #--------------------------------------------------------------------------

  # * Battle Test

  #--------------------------------------------------------------------------

  def battle_test

    # Load database (for 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")

    # Reset frame count for measuring play time

    Graphics.frame_count = 0

    # Make each game object

    $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

    # Set up party for battle test

    $game_party.setup_battle_test_members

    # Set troop ID, can escape flag, and battleback

    $game_temp.battle_troop_id = $data_system.test_troop_id

    $game_temp.battle_can_escape = true

    $game_map.battleback_name = $data_system.battleback_name

    # Play battle start SE

    $game_system.se_play($data_system.battle_start_se)

    # Play battle BGM

    $game_system.bgm_play($game_system.battle_bgm)

    # Switch to battle screen

    $scene = Scene_Battle.new

  end

end

 

It was a really simple edit, lol.

Okay, so replace Scene_Title with the code I've just given you, and when you start the game, it'll skip straight to the start point, hope that's what you wanted !
 

Nolund

Sponsor

Thanks jbrist, but that doesn't exactly get me where I want to go (though if I remember correctly, it's part of it).

Here's what my title screen currently looks like:

2q07sp0.png

And here's what I want to change to (not exactly this as my fonts are just thrown on there, it's just an example).

4s0bqw.png
 

Jason

Awesome Bro

Sooooooo, you basically just want a 3 Image Titlescreen Script ?

Where you have three images, one for each selection, right ?

If so, put this into a new script;
Code:
 

#==============================================================================

# ** Scene_Title - 3 Pictures

#==============================================================================

 

class Scene_Title

  #--------------------------------------------------------------------------

  # * Main Processing

  #--------------------------------------------------------------------------

  def main

    # If battle test

    if $BTEST

      battle_test

      return

    end

    # Load database

    $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")

    # Make system object

    $game_system = Game_System.new

    # Make title graphic

    @sprite = Sprite.new

    

    # Start Transition Code

    @back_sprite = Sprite.new

    @back_sprite.z = @sprite.z - 10

    

    # transition between images, set to 0 if none

    @transition_frames = 0#10

    #@delta = 255 / @transition_frames

    @wait = 0

    # End Transition Code

    

    # Continue enabled determinant

    # Check if at least one save file exists

    # If enabled, make @continue_enabled true; if disabled, make it false

    @continue_enabled = false

    for i in 0..3

      if FileTest.exist?("Save#{i+1}.rxdata")

        @continue_enabled = true

      end

    end

    

    # If continue is enabled, move cursor to "Continue"

    # NEW CODE

    if @continue_enabled

      @sprite.bitmap = RPG::Cache.title("2")

      @back_sprite.bitmap = RPG::Cache.title("2")

      @index = 2

    else

      @sprite.bitmap = RPG::Cache.title("1")

      @back_sprite.bitmap = RPG::Cache.title("1")

      @index = 1

    end

    # END NEW CODE

    

    # Play title BGM

    $game_system.bgm_play($data_system.title_bgm)

    # Stop playing ME and BGS

    Audio.me_stop

    Audio.bgs_stop

    # Execute transition

    Graphics.transition

    # Main loop

    loop do

      # Update game screen

      Graphics.update

      # Update input information

      Input.update

      # Frame update

      update

      # Abort loop if screen is changed

      if $scene != self

        break

      end

    end

    # Prepare for transition

    Graphics.freeze

 

    # Dispose of title graphic

    @sprite.bitmap.dispose

    @sprite.dispose

  end

  #--------------------------------------------------------------------------

  # * Frame Update

  #--------------------------------------------------------------------------

  def update

    # NEW CODE

    if @wait >= 0

      if @wait == 0

        @sprite.bitmap = RPG::Cache.title(@index.to_s)

        @sprite.opacity = 255

      else

        @sprite.opacity -= @delta

      end

      @wait -= 1

      return

    end

    # if directional buttons are pressed

    if Input.trigger?(Input::LEFT) or Input.trigger?(Input::UP)

      $game_system.se_play($data_system.cursor_se)

      if @index == 1

        @index = 3

      else

        @index -= 1

      end

      @wait = @transition_frames

      @back_sprite.bitmap = RPG::Cache.title(@index.to_s)

    end

    if Input.trigger?(Input::RIGHT) or Input.trigger?(Input::DOWN)

      $game_system.se_play($data_system.cursor_se)

      if @index == 3

        @index = 1

      else

        @index += 1

      end

      @wait = @transition_frames

      @back_sprite.bitmap = RPG::Cache.title(@index.to_s)

    end

    # If C button was pressed

    if Input.trigger?(Input::C)

      # Branch by index

      case @index

      when 1  # New game

        command_new_game

      when 2  # Continue

        command_continue

      when 3  # Shutdown

        command_shutdown

      end

    end

    # END NEW CODE

  end

  #--------------------------------------------------------------------------

  # * Command: New Game

  #--------------------------------------------------------------------------

  def command_new_game

    # Play decision SE

    $game_system.se_play($data_system.decision_se)

    # Stop BGM

    Audio.bgm_stop

    # Reset frame count for measuring play time

    Graphics.frame_count = 0

    # Make each type of game object

    $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

    # Set up initial party

    $game_party.setup_starting_members

    # Set up initial map position

    $game_map.setup($data_system.start_map_id)

    # Move player to initial position

    $game_player.moveto($data_system.start_x, $data_system.start_y)

    # Refresh player

    $game_player.refresh

    # Run automatic change for BGM and BGS set with map

    $game_map.autoplay

    # Update map (run parallel process event)

    $game_map.update

    # Switch to map screen

    $scene = Scene_Map.new

  end

  #--------------------------------------------------------------------------

  # * Command: Continue

  #--------------------------------------------------------------------------

  def command_continue

    # If continue is disabled

    unless @continue_enabled

      # Play buzzer SE

      $game_system.se_play($data_system.buzzer_se)

      return

    end

    # Play decision SE

    $game_system.se_play($data_system.decision_se)

    # Switch to load screen

    $scene = Scene_Load.new

  end

  #--------------------------------------------------------------------------

  # * Command: Shutdown

  #--------------------------------------------------------------------------

  def command_shutdown

    # Play decision SE

    $game_system.se_play($data_system.decision_se)

    # Fade out BGM, BGS, and ME

    Audio.bgm_fade(800)

    Audio.bgs_fade(800)

    Audio.me_fade(800)

    # Shutdown

    $scene = nil

  end

  #--------------------------------------------------------------------------

  # * Battle Test

  #--------------------------------------------------------------------------

  def battle_test

    # Load database (for 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")

    # Reset frame count for measuring play time

    Graphics.frame_count = 0

    # Make each game object

    $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

    # Set up party for battle test

    $game_party.setup_battle_test_members

    # Set troop ID, can escape flag, and battleback

    $game_temp.battle_troop_id = $data_system.test_troop_id

    $game_temp.battle_can_escape = true

    $game_map.battleback_name = $data_system.battleback_name

    # Play battle start SE

    $game_system.se_play($data_system.battle_start_se)

    # Play battle BGM

    $game_system.bgm_play($game_system.battle_bgm)

    # Switch to battle screen

    $scene = Scene_Battle.new

  end

end

 

And inside your Game/Graphics/Titles folder, have three images named 1, 2, and 3

Image 1 is New Game
Image 2 is Continue
Image 3 is Quit.

(So in this case, the image you've shown with New Game highlighted by the sword, would be image 1)

Hope that's right, lol.
 

Thank you for viewing

HBGames is a leading amateur video game development forum and Discord server open to all ability levels. Feel free to have a nosey around!

Discord

Join our growing and active Discord server to discuss all aspects of game making in a relaxed environment. Join Us

Content

  • Our Games
  • Games in Development
  • Emoji by Twemoji.
    Top