


#==============================================================================
# ** Map as Title Screen v1.1
# Author: Acezon
# Date: 16 June 2013
#------------------------------------------------------------------------------
# Version 1.1
# - Merged with the Yami TD compatible script
# - Now compatible with Khas's Awesome Light Effects script
# Version 1.0
# - Initial Release
#------------------------------------------------------------------------------
# Just credit me. Free to use for commercial/non-commercial games.
#==============================================================================
$imported = {} if $imported.nil?
$imported["Acezon-MapTitleScreen"] = true
#==============================================================================
# ** START Configuration
#==============================================================================
module Config
# The id of the map you want the title to be displayed.
Starting_Map_ID = 1
# Character's position (though he/she is invisible)
# This feature is useful for large maps.
X_Pos = 7
Y_Pos = 6
end
#==============================================================================
# ** END Configuration
#==============================================================================
#==============================================================================
# ** Scene_Title
#==============================================================================
class Scene_Title < Scene_Base
#--------------------------------------------------------------------------
# * Start
#--------------------------------------------------------------------------
def start
SceneManager.call(Scene_MapTitle)
end
#--------------------------------------------------------------------------
# * Terminate
#--------------------------------------------------------------------------
def terminate
SceneManager.snapshot_for_background
Graphics.fadeout(Graphics.frame_rate)
end
end
#==============================================================================
# ** Scene_MapTitle
#==============================================================================
class Scene_MapTitle < Scene_Map
#--------------------------------------------------------------------------
# * Public Instance Variables
#--------------------------------------------------------------------------
attr_accessor :character_name # character graphic filename
attr_accessor :character_index # character graphic index
#--------------------------------------------------------------------------
# * Start
#--------------------------------------------------------------------------
def start
DataManager.create_game_objects
$game_party.setup_starting_members
$game_map.setup(Config::Starting_Map_ID)
$game_player.moveto(Config::X_Pos, Config::Y_Pos)
$game_player.followers.visible = false
$game_player.refresh
$game_player.make_encounter_count
@character_name = $game_player.character_name
@character_index = $game_player.character_index
$game_player.set_graphic('', 0)
$game_system.menu_disabled = true
Graphics.frame_count = 0
super
create_foreground
create_background
create_command_window
play_title_music
end
#--------------------------------------------------------------------------
# * Update
#--------------------------------------------------------------------------
def update
# Yami's Title Decoration Compatibility Scriptlet
if $imported["YSE-TD-VerticalCommand"]
@command_sprite.each { |sprite|
sprite.update
@command_window.index == sprite.id ? sprite.activate : sprite.deactivate
}
end
update_basic
@spriteset.update
$game_map.update(true)
update_scene if scene_change_ok?
end
#--------------------------------------------------------------------------
# * Determine if Debug Call by F9 key
#--------------------------------------------------------------------------
def update_call_debug
# do nothing
end
#--------------------------------------------------------------------------
# * Get Transition Speed
#--------------------------------------------------------------------------
def transition_speed
return 20
end
#--------------------------------------------------------------------------
# * Termination Processing
#--------------------------------------------------------------------------
def terminate
super
dispose_background
dispose_foreground
dispose_command_sprite if $imported["YSE-TD-VerticalCommand"]
SceneManager.snapshot_for_background
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)
end
#--------------------------------------------------------------------------
# * Create Foreground
#--------------------------------------------------------------------------
def create_foreground
@foreground_sprite = Sprite.new
@foreground_sprite.bitmap = Bitmap.new(Graphics.width, Graphics.height)
@foreground_sprite.z = 100
draw_game_title if $data_system.opt_draw_title
end
#--------------------------------------------------------------------------
# * Draw Game Title
#--------------------------------------------------------------------------
def draw_game_title
@foreground_sprite.bitmap.font.size = 48
rect = Rect.new(0, 0, Graphics.width, Graphics.height / 2)
@foreground_sprite.bitmap.draw_text(rect, $data_system.game_title, 1)
end
#--------------------------------------------------------------------------
# * Free Background
#--------------------------------------------------------------------------
def dispose_background
@sprite1.bitmap.dispose
@sprite1.dispose
@sprite2.bitmap.dispose
@sprite2.dispose
end
#--------------------------------------------------------------------------
# * Free Foreground
#--------------------------------------------------------------------------
def dispose_foreground
@foreground_sprite.bitmap.dispose
@foreground_sprite.dispose
end
#--------------------------------------------------------------------------
# * Move Sprite to Screen Center
#--------------------------------------------------------------------------
def center_sprite(sprite)
sprite.ox = sprite.bitmap.width / 2
sprite.oy = sprite.bitmap.height / 2
sprite.x = Graphics.width / 2
sprite.y = Graphics.height / 2
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))
if $imported["YSE-TD-VerticalCommand"]
@command_window.y = Graphics.height
@command_sprite = []
i = 0
@command_window.symbol_list.each { |symbol|
sprite = Sprite_TitleCommand.new(symbol, i); i += 1
@command_sprite.push(sprite)
}
@command_sprite.each { |sprite| sprite.show }
end
end
#--------------------------------------------------------------------------
# * Dispose Command Sprites
#--------------------------------------------------------------------------
def dispose_command_sprite
@command_sprite.each { |sprite| sprite.dispose }
end
#--------------------------------------------------------------------------
# * Close Command Window
#--------------------------------------------------------------------------
def close_command_window
@command_window.close
update until @command_window.close?
end
#--------------------------------------------------------------------------
# * [New Game] Command
#--------------------------------------------------------------------------
def command_new_game
close_command_window
fadeout_all
$game_system.menu_disabled = false
$game_map.setup($data_system.start_map_id)
$game_player.moveto($data_system.start_x, $data_system.start_y)
$game_player.followers.visible = true
$game_player.refresh
$game_player.set_graphic(@character_name, @character_index)
$game_map.autoplay
SceneManager.goto(Scene_Map)
end
#--------------------------------------------------------------------------
# * [Continue] Command
#--------------------------------------------------------------------------
def command_continue
close_command_window
fadeout_all
SceneManager.call(Scene_Load)
end
#--------------------------------------------------------------------------
# * [Shut Down] Command
#--------------------------------------------------------------------------
def command_shutdown
close_command_window
fadeout_all
SceneManager.exit
end
#--------------------------------------------------------------------------
# * Play Title Screen Music
#--------------------------------------------------------------------------
def play_title_music
$data_system.title_bgm.play
RPG::BGS.stop
RPG::ME.stop
end
end
좋지 아니한가 ↗
출처 http://thequirkyproton.wordpress.com/2013/03/10/map-as-title-screen/