- #==============================================================================
- #
- # -- NerdiGaming - Title Menu
- # -- Last Updated: November 9, 2012
- #
- #==============================================================================
- # - Introduction
- # =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
- # This is a very simple script that allows you to use images for your title
- # menu.
- #
- #==============================================================================
- # - Instructions
- # =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
- # To install this script, open up your script editor and copy/paste this script
- # to an open slot below Materials but above Main. Remember to save.
- #
- #==============================================================================
- # - Terms of Use
- # =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
- # - You MAY NOT re-distribute this script or any attached material to any
- # location without my permission.
- # - No credit required, just grab the script and go.
- # - No need for commercial permission, this script is available to use in any project.
- #
- #==============================================================================
- # - Updates
- # =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
- # Version 1.2 - Fixed a Bug: If players held down an input button the menu
- # would not update.
- # - Removed unecessary overwrites; improving compatability
- # slightly.
- # - Removed some unecessary code.
- # Version 1.1 - Fixed a Bug: If a save file was present, New Game would be
- # selected instead of Continue.
- # Version 1 - Script Completed.
- #==============================================================================
- module TitleMenu
- #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
- # - Padding -
- #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
- # Padding increases the distance between the New Game and Exit Game images
- # from the Continue Game image.
- #
- # New Game
- # -> <- This Space
- # Continue Game
- # -> <- This Space
- # Exit Game
- #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
- PADDING = 5 # Default: 5
- #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
- # - Offset -
- #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
- # Offset moves the menu images in different directions.
- #
- # Positive Y = Moves the Menu Up Example: 50
- # Negative Y = Moves the Menu Down Example: -50
- #
- # Positive X = Moves the Menu Left Example: 50
- # Negative X = Moves the Menu Right Example: -50
- #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
- Y_OFFSET = 0 # Default: 0
- X_OFFSET = 0 # Default: 0
- #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
- # - Image Names -
- #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
- # This is where you specify what you want your images to be called.
- #
- # The images need to be placed in your Project\Graphics\System\ Folder.
- #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
- NEW_IMAGE = "NewGame"
- NEW_SELECTED_IMAGE = "NewGameSelected"
- CONTINUE_IMAGE = "ContinueGame"
- CONTINUE_SELECTED_IMAGE = "ContinueGameSelected"
- EXIT_IMAGE = "ExitGame"
- EXIT_SELECTED_IMAGE = "ExitGameSelected"
- #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
- # - Continue Opacity -
- #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
- # Continue Opacity is how transparent the continue image will be when there
- # are no save files present or if the continue option is disabled for some
- # reason.
- #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
- CONTINUE_DISABLED_OPACITY = 100 # Default: 100
- end # TitleMenu
- class Scene_Title < Scene_Base
- #--------------------------------------------------------------------------
- # * Start processing
- #--------------------------------------------------------------------------
- def start
- super
- SceneManager.clear
- Graphics.freeze
- check_continue
- create_background
- create_command_window
- play_title_music
- end
- #--------------------------------------------------------------------------
- # * Termination Processing
- #--------------------------------------------------------------------------
- def terminate
- super
- SceneManager.snapshot_for_background
- dispose_background
- end
- #--------------------------------------------------------------------------
- # * Check User Input
- #--------------------------------------------------------------------------
- def check_input
- case @command_window.index
- when 0 # New Game Is Selected
- @spriteNewGameSelected.z = 15
- @spriteNewGame.z = -2
- @spriteContinueGameSelected.z = -2
- @spriteContinueGame.z = 10
- @spriteExitGameSelected.z = -2
- @spriteExitGame.z = 10
- when 1 # Continue Game Is Selected
- @spriteNewGameSelected.z = -2
- @spriteNewGame.z = 10
- @spriteContinueGameSelected.z = 15
- @spriteContinueGame.z = -2
- @spriteExitGameSelected.z = -2
- @spriteExitGame.z = 10
- when 2 # Exit Game Is Selected
- @spriteNewGameSelected.z = -2
- @spriteNewGame.z = 10
- @spriteContinueGameSelected.z = -2
- @spriteContinueGame.z = 10
- @spriteExitGameSelected.z = 15
- @spriteExitGame.z = -2
- end
- end
- #--------------------------------------------------------------------------
- # * Frame Update
- #--------------------------------------------------------------------------
- def update
- super
- if Input.trigger?(:DOWN)
- check_input
- end
- if Input.repeat?(:DOWN)
- check_input
- end
- if Input.trigger?(:UP)
- check_input
- end
- if Input.repeat?(:UP)
- check_input
- end
- end
- #--------------------------------------------------------------------------
- # * Determine if Continue is Enabled
- #--------------------------------------------------------------------------
- def check_continue
- @continue_enabled = (Dir.glob('Save*.rvdata2').size > 0)
- end
- #--------------------------------------------------------------------------
- # * Create Background
- #--------------------------------------------------------------------------
- def create_background
- @sprite1 = Sprite.new
- @sprite1.bitmap = Cache.title1( $data_system.title1_name )
- @sprite2 = Sprite.new
- @sprite2.bitmap = Cache.title2( $data_system.title2_name )
- center_sprite( @sprite1 )
- center_sprite( @sprite2 )
- # Creates The Continue Game Image
- @spriteContinueGame = Sprite.new
- @spriteContinueGame.bitmap = Cache.system( TitleMenu::CONTINUE_IMAGE )
- @spriteContinueGame.x = ( ( Graphics.width / 2 ) - (@spriteContinueGame.bitmap.width / 2 ) )
- @spriteContinueGame.y = ( ( Graphics.height / 2 ) - (@spriteContinueGame.bitmap.height / 2 ) )
- @spriteContinueGame.z = 10
- # Creates The Continue Game Selected Image
- @spriteContinueGameSelected = Sprite.new
- @spriteContinueGameSelected.bitmap = Cache.system( TitleMenu::CONTINUE_SELECTED_IMAGE )
- @spriteContinueGameSelected.x = ( ( Graphics.width / 2 ) - ( @spriteContinueGameSelected.bitmap.width / 2 ) )
- @spriteContinueGameSelected.y = ( ( Graphics.height / 2 ) - ( @spriteContinueGameSelected.bitmap.height / 2 ) )
- @spriteContinueGameSelected.z = -2
- # Applies The Opacity If Continue Is Disabled
- if !@continue_enabled
- @spriteContinueGame.opacity = TitleMenu::CONTINUE_DISABLED_OPACITY
- @spriteContinueGameSelected.opacity = TitleMenu::CONTINUE_DISABLED_OPACITY
- end
- # Creates The New Game Image
- @spriteNewGame = Sprite.new
- @spriteNewGame.bitmap = Cache.system( TitleMenu::NEW_IMAGE )
- @spriteNewGame.x = ( ( Graphics.width / 2 ) - ( @spriteNewGame.bitmap.width / 2 ) )
- @spriteNewGame.y = ( ( Graphics.height / 2 ) - ( @spriteNewGame.bitmap.height / 2 ) ) - ( @spriteContinueGame.bitmap.height + TitleMenu::PADDING )
- @spriteNewGame.z = -2
- # Creates The New Game Selected Image
- @spriteNewGameSelected = Sprite.new
- @spriteNewGameSelected.bitmap = Cache.system( TitleMenu::NEW_SELECTED_IMAGE )
- @spriteNewGameSelected.x = ( ( Graphics.width / 2 ) - ( @spriteNewGameSelected.bitmap.width / 2 ) )
- @spriteNewGameSelected.y = ( ( Graphics.height / 2 ) - ( @spriteNewGameSelected.bitmap.height / 2 ) ) - ( @spriteContinueGame.bitmap.height + TitleMenu::PADDING )
- @spriteNewGameSelected.z = -2
- # Creates The Exit Game Image
- @spriteExitGame = Sprite.new
- @spriteExitGame.bitmap = Cache.system( TitleMenu::EXIT_IMAGE )
- @spriteExitGame.x = ( ( Graphics.width / 2 ) - ( @spriteExitGame.bitmap.width / 2 ) )
- @spriteExitGame.y = ( ( Graphics.height / 2 ) - ( @spriteExitGame.bitmap.height / 2 ) ) + ( @spriteContinueGame.bitmap.height + TitleMenu::PADDING )
- @spriteExitGame.z = 10
- # Creates The Exit Game Selected Image
- @spriteExitGameSelected = Sprite.new
- @spriteExitGameSelected.bitmap = Cache.system( TitleMenu::EXIT_SELECTED_IMAGE )
- @spriteExitGameSelected.x = ( ( Graphics.width / 2 ) - ( @spriteExitGameSelected.bitmap.width / 2 ) )
- @spriteExitGameSelected.y = ( ( Graphics.height / 2 ) - ( @spriteExitGameSelected.bitmap.height / 2 ) ) + ( @spriteContinueGame.bitmap.height + TitleMenu::PADDING )
- @spriteExitGameSelected.z = -2
- # Applies The Offset To The Continue Game Images
- @spriteContinueGame.x -= TitleMenu::X_OFFSET
- @spriteContinueGame.y -= TitleMenu::Y_OFFSET
- @spriteContinueGameSelected.x -= TitleMenu::X_OFFSET
- @spriteContinueGameSelected.y -= TitleMenu::Y_OFFSET
- # Applies The Offset To The New Game Images
- @spriteNewGame.x -= TitleMenu::X_OFFSET
- @spriteNewGame.y -= TitleMenu::Y_OFFSET
- @spriteNewGameSelected.x -= TitleMenu::X_OFFSET
- @spriteNewGameSelected.y -= TitleMenu::Y_OFFSET
- # Applies The Offset To The Exit Game Images
- @spriteExitGame.x -= TitleMenu::X_OFFSET
- @spriteExitGame.y -= TitleMenu::Y_OFFSET
- @spriteExitGameSelected.x -= TitleMenu::X_OFFSET
- @spriteExitGameSelected.y -= TitleMenu::Y_OFFSET
- end
- #--------------------------------------------------------------------------
- # * Dispose Background
- #--------------------------------------------------------------------------
- def dispose_background
- @sprite1.bitmap.dispose
- @sprite1.dispose
- @sprite2.bitmap.dispose
- @sprite2.dispose
- @spriteNewGame.bitmap.dispose
- @spriteNewGame.dispose
- @spriteNewGameSelected.bitmap.dispose
- @spriteNewGameSelected.dispose
- @spriteContinueGame.bitmap.dispose
- @spriteContinueGame.dispose
- @spriteContinueGameSelected.bitmap.dispose
- @spriteContinueGameSelected.dispose
- @spriteExitGame.bitmap.dispose
- @spriteExitGame.dispose
- @spriteExitGameSelected.bitmap.dispose
- @spriteExitGameSelected.dispose
- end
- #--------------------------------------------------------------------------
- # * Create Command Window
- #--------------------------------------------------------------------------
- def create_command_window
- @command_window = Window_TitleCommand.new
- @command_window.set_handler(:new_game, method(:command_new_game))
- @command_window.set_handler(:continue, method(:command_continue))
- @command_window.set_handler(:shutdown, method(:command_shutdown))
- @command_window.z = -2
- case @command_window.index
- when 0 # New Game Is Selected
- @spriteNewGameSelected.z = 15
- @spriteNewGame.z = -2
- @spriteContinueGameSelected.z = -2
- @spriteContinueGame.z = 10
- @spriteExitGameSelected.z = -2
- @spriteExitGame.z = 10
- when 1 # Continue Game Is Selected
- @spriteNewGameSelected.z = -2
- @spriteNewGame.z = 10
- @spriteContinueGameSelected.z = 15
- @spriteContinueGame.z = -2
- @spriteExitGameSelected.z = -2
- @spriteExitGame.z = 10
- when 2 # Exit Game Is Selected
- @spriteNewGameSelected.z = -2
- @spriteNewGame.z = 10
- @spriteContinueGameSelected.z = -2
- @spriteContinueGame.z = 10
- @spriteExitGameSelected.z = 15
- @spriteExitGame.z = -2
- end
- end
- #--------------------------------------------------------------------------
- # * [Continue] Command
- #--------------------------------------------------------------------------
- def command_continue
- if @continue_enabled
- close_command_window
- SceneManager.call(Scene_Load)
- end
- end
- end # Scene_Title