Author Topic: Fullscreen Toggle Menu Option  (Read 1617 times)

0 Members and 1 Guest are viewing this topic.
Dark Gaia Male
**
Rep: +1/-1
Offline Offline
Level 58 (65%)
The Guardian Dragon
Fullscreen Toggle Menu Option
« on: January 16, 2010, 02:10:39 AM »

  • Full Screen Menu Option
    An RPG Maker VX script written by Dark Gaia


    Introduction
    Every RPG Maker VX user knows that to toggle full screen mode you just hit Alt and Enter at the same time. But what happens when you give your game to people who aren't very familiar with RPG Maker (such as your friends and family) and they don't know this? As someone who presents their games to people outside of the RPG Maker community, I for one know that people will eventually send emails asking "how the hell do I put the game in full screen?"
    This simple, plug and play script remedies that by adding a simple "Full Screen" option to your title screen menu, which will put the game into full screen upon selection.

    Screenshot
    Not needed. It's an extra menu option.

    Instructions
    Simply paste the script under Materials and above Main. Place it under any custom title systems you have installed.

    Credit me if this is used. Free for use in commercial projects!

    Compatibility
    This script needs the original title menu window on screen to work. Thus, this script won't work with:

    ? MogHunter's Animated Title script
    ? DeadlyDan's Title Images script

    It cannot work with the above two because they remove the menu window from the title screen, which this script needs.
    It should work fine with most other title screen addons however, provided they use the menu window and not a custom image.

    Script[/u]
    Code: [Select]
    #==============================================================================
    # Full Screen Toggle Option
    # Scripted by Dark Gaia
    # For RPG Maker VX *only*
    #------------------------------------------------------------------------------
    # Adds an option called "Full Screen" to the Title Screen which makes the game
    # switch to full screen when selected. Good for players who do not know about
    # the Alt + Enter toggle (such as your non RM using friends)
    #------------------------------------------------------------------------------
    # Insert above Main.
    # Incompatible with other scripts that alter the Title Screen.
    #==============================================================================

    class Scene_Title < Scene_Base
    #--------------------------------------------------------------------------
    # * Main Processing
    #--------------------------------------------------------------------------
    def main
    if $BTEST # If battle test
    battle_test # Start battle test
    else # If normal play
    super # Usual main processing
    end
    end
    #--------------------------------------------------------------------------
    # * Start processing
    #--------------------------------------------------------------------------
    def start
    super
    load_database # Load database
    create_game_objects # Create game objects
    check_continue # Determine if continue is enabled
    create_title_graphic # Create title graphic
    create_command_window # Create command window
    play_title_music # Play title screen music
    end
    #--------------------------------------------------------------------------
    # * Execute Transition
    #--------------------------------------------------------------------------
    def perform_transition
    Graphics.transition(20)
    end
    #--------------------------------------------------------------------------
    # * Post-Start Processing
    #--------------------------------------------------------------------------
    def post_start
    super
    open_command_window
    end
    #--------------------------------------------------------------------------
    # * Pre-termination Processing
    #--------------------------------------------------------------------------
    def pre_terminate
    super
    close_command_window
    end
    #--------------------------------------------------------------------------
    # * Termination Processing
    #--------------------------------------------------------------------------
    def terminate
    super
    dispose_command_window
    snapshot_for_background
    dispose_title_graphic
    end
    #--------------------------------------------------------------------------
    # * Frame Update
    #--------------------------------------------------------------------------
    def update
    super
    @command_window.update
    if Input.trigger?(Input::C)
    case @command_window.index
    when 0 #New game
    command_new_game
    when 1 # Continue
    command_continue
    when 2 # Shutdown
    unless $keybd
    $keybd = Win32API.new 'user32.dll', 'keybd_event', ['i', 'i', 'l', 'l'], 'v' #Recognizes keyboard
    $keybd.call 0xA4, 0, 0, 0
    $keybd.call 13, 0, 0, 0
    $keybd.call 13, 0, 2, 0
    $keybd.call 0xA4, 0, 2, 0
    end
    when 3
    command_shutdown
    end
    end
    end
    #--------------------------------------------------------------------------
    # * Load Database
    #--------------------------------------------------------------------------
    def load_database
    $data_actors = load_data("Data/Actors.rvdata")
    $data_classes = load_data("Data/Classes.rvdata")
    $data_skills = load_data("Data/Skills.rvdata")
    $data_items = load_data("Data/Items.rvdata")
    $data_weapons = load_data("Data/Weapons.rvdata")
    $data_armors = load_data("Data/Armors.rvdata")
    $data_enemies = load_data("Data/Enemies.rvdata")
    $data_troops = load_data("Data/Troops.rvdata")
    $data_states = load_data("Data/States.rvdata")
    $data_animations = load_data("Data/Animations.rvdata")
    $data_common_events = load_data("Data/CommonEvents.rvdata")
    $data_system = load_data("Data/System.rvdata")
    $data_areas = load_data("Data/Areas.rvdata")
    end
    #--------------------------------------------------------------------------
    # * Load Battle Test Database
    #--------------------------------------------------------------------------
    def load_bt_database
    $data_actors = load_data("Data/BT_Actors.rvdata")
    $data_classes = load_data("Data/BT_Classes.rvdata")
    $data_skills = load_data("Data/BT_Skills.rvdata")
    $data_items = load_data("Data/BT_Items.rvdata")
    $data_weapons = load_data("Data/BT_Weapons.rvdata")
    $data_armors = load_data("Data/BT_Armors.rvdata")
    $data_enemies = load_data("Data/BT_Enemies.rvdata")
    $data_troops = load_data("Data/BT_Troops.rvdata")
    $data_states = load_data("Data/BT_States.rvdata")
    $data_animations = load_data("Data/BT_Animations.rvdata")
    $data_common_events = load_data("Data/BT_CommonEvents.rvdata")
    $data_system = load_data("Data/BT_System.rvdata")
    end
    #--------------------------------------------------------------------------
    # * Create Game Objects
    #--------------------------------------------------------------------------
    def create_game_objects
    $game_temp = Game_Temp.new
    $game_message = Game_Message.new
    $game_system = Game_System.new
    $game_switches = Game_Switches.new
    $game_variables = Game_Variables.new
    $game_self_switches = Game_SelfSwitches.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
    end
    #--------------------------------------------------------------------------
    # * Determine if Continue is Enabled
    #--------------------------------------------------------------------------
    def check_continue
    @continue_enabled = (Dir.glob('Save*.rvdata').size > 0)
    end
    #--------------------------------------------------------------------------
    # * Create Title Graphic
    #--------------------------------------------------------------------------
    def create_title_graphic
    @sprite = Sprite.new
    @sprite.bitmap = Cache.system("Title")
    end
    #--------------------------------------------------------------------------
    # * Dispose of Title Graphic
    #--------------------------------------------------------------------------
    def dispose_title_graphic
    @sprite.bitmap.dispose
    @sprite.dispose
    end
    #--------------------------------------------------------------------------
    # * Create Command Window
    #--------------------------------------------------------------------------
    def create_command_window
    s1 = Vocab::new_game
    s2 = Vocab::continue
    s3 = "Full Screen"
    s4 = Vocab::shutdown
    @command_window = Window_Command.new(172, [s1, s2, s3, s4])
    @command_window.x = (544 - @command_window.width) / 2
    @command_window.y = 240
    if @continue_enabled # If continue is enabled
    @command_window.index = 1 # Move cursor over command
    else # If disabled
    @command_window.draw_item(1, false) # Make command semi-transparent
    end
    @command_window.openness = 0
    @command_window.open
    end
    #--------------------------------------------------------------------------
    # * Dispose of Command Window
    #--------------------------------------------------------------------------
    def dispose_command_window
    @command_window.dispose
    end
    #--------------------------------------------------------------------------
    # * Open Command Window
    #--------------------------------------------------------------------------
    def open_command_window
    @command_window.open
    begin
    @command_window.update
    Graphics.update
    end until @command_window.openness == 255
    end
    #--------------------------------------------------------------------------
    # * Close Command Window
    #--------------------------------------------------------------------------
    def close_command_window
    @command_window.close
    begin
    @command_window.update
    Graphics.update
    end until @command_window.openness == 0
    end
    #--------------------------------------------------------------------------
    # * Play Title Screen Music
    #--------------------------------------------------------------------------
    def play_title_music
    $data_system.title_bgm.play
    RPG::BGS.stop
    RPG::ME.stop
    end
    #--------------------------------------------------------------------------
    # * Check Player Start Location Existence
    #--------------------------------------------------------------------------
    def confirm_player_location
    if $data_system.start_map_id == 0
    print "Player start location not set."
    exit
    end
    end
    #--------------------------------------------------------------------------
    # * Command: New Game
    #--------------------------------------------------------------------------
    def command_new_game
    confirm_player_location
    Sound.play_decision
    $game_party.setup_starting_members # Initial party
    $game_map.setup($data_system.start_map_id) # Initial map position
    $game_player.moveto($data_system.start_x, $data_system.start_y)
    $game_player.refresh
    $scene = Scene_Map.new
    RPG::BGM.fade(1500)
    close_command_window
    Graphics.fadeout(60)
    Graphics.wait(40)
    Graphics.frame_count = 0
    RPG::BGM.stop
    $game_map.autoplay
    end
    #--------------------------------------------------------------------------
    # * Command: Continue
    #--------------------------------------------------------------------------
    def command_continue
    if @continue_enabled
    Sound.play_decision
    $scene = Scene_File.new(false, true, false)
    else
    Sound.play_buzzer
    end
    end
    #--------------------------------------------------------------------------
    # * Command: Shutdown
    #--------------------------------------------------------------------------
    def command_shutdown
    Sound.play_decision
    RPG::BGM.fade(800)
    RPG::BGS.fade(800)
    RPG::ME.fade(800)
    $scene = nil
    end
    #--------------------------------------------------------------------------
    # * Battle Test
    #--------------------------------------------------------------------------
    def battle_test
    load_bt_database # Load battle test database
    create_game_objects # Create game objects
    Graphics.frame_count = 0 # Initialize play time
    $game_party.setup_battle_test_members
    $game_troop.setup($data_system.test_troop_id)
    $game_troop.can_escape = true
    $game_system.battle_bgm.play
    snapshot_for_background
    $scene = Scene_Battle.new
    end
    end
    "Generatin' projects cause you want em!!!"

    My Projects! Click to visit project thread![/u]
    *Complete*
    *v3.3 Available*
    *Complete*
    modern algebra Male
    *
    Rep: +336/-113
    Online Online
    Level 79 (49%)
    Re: Fullscreen Toggle Menu Option
    « Reply #1 on: January 16, 2010, 11:02:58 AM »

  • It's a great idea, but you don't need to copy and overwrite all of Scene_Title for it. As long as you don't overwrite the method, it will use the method that already exists.

    So, you don't need to copy everything from Scene_Title, you only need to keep the methods you actually modify. So, from what I could tell, you only changed the methods create_command_window and update, so rather than having that big long script, you could instead just share this to be posted above Main and below the default scripts:

    Spoiler for Hiden:
    Code: [Select]
    #==============================================================================
    # Full Screen Toggle Option
    # Scripted by Dark Gaia
    # For RPG Maker VX *only*
    #------------------------------------------------------------------------------
    # Adds an option called "Full Screen" to the Title Screen which makes the game
    # switch to full screen when selected. Good for players who do not know about
    # the Alt + Enter toggle (such as your non RM using friends)
    #------------------------------------------------------------------------------
    # Insert above Main.
    # Incompatible with other scripts that alter the Title Screen.
    #==============================================================================

    class Scene_Title < Scene_Base
    #--------------------------------------------------------------------------
    # * Frame Update
    #--------------------------------------------------------------------------
    def update
    super
    @command_window.update
    if Input.trigger?(Input::C)
    case @command_window.index
    when 0 #New game
    command_new_game
    when 1 # Continue
    command_continue
    when 2 # Shutdown
    unless $keybd
    $keybd = Win32API.new 'user32.dll', 'keybd_event', ['i', 'i', 'l', 'l'], 'v' #Recognizes keyboard
    $keybd.call 0xA4, 0, 0, 0
    $keybd.call 13, 0, 0, 0
    $keybd.call 13, 0, 2, 0
    $keybd.call 0xA4, 0, 2, 0
    end
    when 3
    command_shutdown
    end
    end
    end
    #--------------------------------------------------------------------------
    # * Create Command Window
    #--------------------------------------------------------------------------
    def create_command_window
    s1 = Vocab::new_game
    s2 = Vocab::continue
    s3 = "Full Screen"
    s4 = Vocab::shutdown
    @command_window = Window_Command.new(172, [s1, s2, s3, s4])
    @command_window.x = (544 - @command_window.width) / 2
    @command_window.y = 240
    if @continue_enabled # If continue is enabled
    @command_window.index = 1 # Move cursor over command
    else # If disabled
    @command_window.draw_item(1, false) # Make command semi-transparent
    end
    @command_window.openness = 0
    @command_window.open
    end
    end

    The script would be more compatible with some aliasing, but overall I think you did a good job and it's definitely a nice idea for a script. Good job


     

    hi

    RMRK.net Theme Super Ultra Mega Beta

    Follow RMRK on Twitter Ask RMRK Questions on Formspring Get RMRK Updates via Windows Live

    Page created in 0.392 seconds with 19 queries.