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.

Animated Title Screen

Does anyone have a script that can animate a title screen? As in, have trees swaying in the breeze in the backgroud, and have stars twinkling (at the same time if possible)?
 

$t3v0

Awesome Bro

Think i grabbed this from Ccoa a while ago, so be sure to credit her!

replace your Scene_Title with this:

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
    # Make title graphic
    @sprite = Sprite.new
    
    # NEW CODE
    @back_sprite = Sprite.new
    @back_sprite.z = @sprite.z - 10
    
    # transition between images, set to 0 if none
    @transition_frames = 0
    @delta = 255 / @transition_frames = 5
    @wait = 0
    #END NEW 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")
      @index = 2
    else
      @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
Now in your Graphics folder, create a new file called "Titles" and place 3 of your desired images in there ( One for start game, one for continue, one for shutdown etc ) and name them accordingly:

1. New game ( Titled "1" )
2. Continue ( Titled "2" )
3. Shutdown ( Titled "3" )

If done correctly, it should look something like this:

http://img525.imageshack.us/img525/6721/1xm5.png[/img]http://img408.imageshack.us/img408/9205/2it0.png[/img]http://img525.imageshack.us/img525/9481/3am3.png[/img]
As you can see, each image highlights a different function that the title pocesses. The title screen you see above was a mock up i did for my own game, "Apparition" to test out the script and see how it looks.

Hope this helps!

~ $t3v0
 
Erm, I'm not really looking to change the way you select options from the Title Screen. I'm looking to change the way you see the title screen background. So the background will constantly change using images from the Graphics/Titles that are repeatedly played one after the other.
 
Try replacing the @sprite.bitmap line with this (Script by BlueScope :D ):
Code:
  @count += 1
  if @count == 8
    @sprite.bitmap = RPG::Cache.title("Title001")
  elsif @count == 16
    @sprite.bitmap = RPG::Cache.title("Title002")
  elsif @count == 24
    @sprite.bitmap = RPG::Cache.title("Title003")
  elsif @count == 32
    @sprite.bitmap = RPG::Cache.title("Title002")
    @count = 0
  end

This'd be for an animated titlescreen background, including a rewind feature. It should be easy to modify it to fit your needs. Unfortunately, you didn't gave any specifications on what you want to have animated at all... on a side note, please be more specific in your next thread. ;)
 

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