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 a picture if continue is enabled.

I am using pictures for my commands in the title screen and want the continue command to change pictures. This is the code below:

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
        @command.bitmap = RPG::Cache.title("continue2")  
      end
    end

Then here is the whole script:

Code:
#==============================================================================
# ** Scene_Title
#------------------------------------------------------------------------------
#  This class performs title screen processing.
#==============================================================================

class Scene_Title
  def pic_move(pic, pic_x, pic_y, speed, op_speed, max_opacity)
 if pic.x <= pic_x
    pic.x += pic.x + speed > pic_x ? pic_x - pic.x : speed
  else
    pic.x -= pic.x - speed < pic_x ? pic.x - pic_x : speed
  end
  if pic.y <= pic_y
    pic.y += pic.y + speed > pic_y ? pic_y - pic.y : speed
  else
    pic.y -= pic.y - speed < pic_y ? pic.y - pic_y : speed
  end
 
 if  pic.opacity < max_opacity
     pic.opacity += pic.opacity + op_speed < max_opacity ? op_speed : max_opacity - pic.opacity
   elsif pic.opacity > max_opacity
      pic.opacity -= pic.opacity - op_speed > max_opacity ? op_speed : pic.opacity - max_opacity
      end
end
  #--------------------------------------------------------------------------
  # * 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")
    # â–¼ Here is the first change - add this fowling lines â–¼
    $game_system        = Game_System.new         # }
    $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_map.setup(010) # ID of the Map you want # }
    @spriteset = Spriteset_Map.new                # }
    # Make system object
    $game_system = Game_System.new
    # Make title graphic
    @sprite = Sprite.new
    @sprite.bitmap = RPG::Cache.title($data_system.title_name)
    # Make command window
   @cursor = Sprite.new
   @cursor.bitmap = RPG::Cache.title("TitleCommand")
   @cursor.y = 80
   @cursor.x = 400
   @command= Sprite.new
   @command.bitmap = RPG::Cache.title("continue")   
   @command.y = 380
   @command.x = 395
   @command.z = 9999
   @command2 = Sprite.new
   @command2.bitmap = RPG::Cache.title("newgame")
   @command2.y = 347
   @command2.x = 314
   @command2.z = 9999
   @command3 = Sprite.new
   @command3.bitmap = RPG::Cache.title("quit")
   @command3.y = 410
   @command3.x = 455
   @command3.z = 9999
   s1 = ""
   s2 = ""
   s3 = ""
   @command_window = Window_Command2.new(180, [s1, s2, s3])
   @command_window.back_opacity = 160
   @command_window.x = 320 - @command_window.width / 2
   @command_window.y = 288
    # 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
        @command.bitmap = RPG::Cache.title("continue2")  
      end
    end
    # If continue is enabled, move cursor to "Continue"
    # If disabled, display "Continue" text in gray
    if @continue_enabled
      @command_window.index = 1
    else
      @command_window.disable_item(1)
    end
    # 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 command window
    @command_window.dispose
    # Dispose of title graphic
    @sprite.bitmap.dispose
    @sprite.dispose
   @cursor.dispose
   @command.dispose
   @command2.dispose
   @command3.dispose
   @spriteset.dispose # }
  end
  #--------------------------------------------------------------------------
  # * Frame Update
  #--------------------------------------------------------------------------
  def update
    @cursor_x = @cursor.x
if @cursor.y != 340 + (@command_window.index * 32)#350
@cursor_y = 340 + (@command_window.index * 32)
pic_move(@cursor, @cursor_x, @cursor_y, (@cursor_y - @cursor.y).abs / 3.5, 0, 255)
end
@cursor.z= 110
for i in 0..@command_window.index              # for each index defined (aka three if you use the default window: 0, 1, 2), using the placeholder variable 'i'
  @cursor.x = 300 + i * 64  # sets the cursor x position to command_window's position, adds 16 because of the window border (might need to adjust that because I simply can't remember the value, then adds i times 32 to it, aka 0 for the first item, 32 for the second, 64 for the third)
end
    # â–¼ Add These Lines And We're Done â–¼
    $game_map.update  # }
    @spriteset.update # } 
    # Update command window
    @command_window.update
    # If C button was pressed
    if Input.trigger?(Input::C)
      # Branch by command window cursor position
      case @command_window.index
      when 0  # New game
        command_new_game
      when 1  # Continue
        command_continue
      when 2  # Shutdown
        command_shutdown
      end
    end
  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

Thanks in advanced
-Sobeman459
 

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