じ☆ve冰风 发表于 2026-8-2 17:47:36

Map as Title Screen


Map as Title Screen





Introduction
        Customize your title screen by having a map scene as its background! You can also add more eye candy by using Yami's Title Decoration.

Features


[*]Set the starting map of your title screen
[*]Add weather effects, etc. (of course, by using weather scripts and adding them to your map)
[*]Still display your game's title, add borders, etc. (retains Ace's default title screen)
[*]Use Yami's Title decoration to add more pizzazz.



Screenshots

SpoilerSpoiler




https://dl.dropbox.com/s/oscgiznaxntj74m/shot1.png




https://dl.dropbox.com/s/2uzr7zmlgixlvh4/shot2.png




https://dl.dropbox.com/s/dydplbu8t31ctbq/shot3.png




https://dl.dropbox.com/s/kvdbqjqvkinvphj/shot4.png



                           You can also combine weather effects, and even use scripts! Check out MA's Hover Alerts.



https://dl.dropbox.com/s/iopp4tlbdg1nhap/shot5.png



                           Using Yami's Title Decorate provides more eye-candy!






Script

Spoiler#==============================================================================
#   ** 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
#--------------------------------------------------------------------------
# * 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
#--------------------------------------------------------------------------
# * Command
#--------------------------------------------------------------------------
def command_continue
    close_command_window
    fadeout_all
    SceneManager.call(Scene_Load)
end
#--------------------------------------------------------------------------
# * 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






Log


        Version 1.1


         - Merged with the Yami TD compatible script


         - Now compatible with Khas's Awesome Light Effects script


        Version 1.0


         - Initial Release

Credit and Thanks
        - Read the script header


本贴来自国际rpgmaker官方论坛作者:nthcat处,因国际论坛即将永久关站,为了存档多年珍贵资料,署名转载到本论坛存档,由于官方帖子为英文原帖,需要中文翻译请点击论坛顶部切换语言为中文就可以将帖子翻译成中文浏览,方便大家随时查看,原文地址:https://forums.rpgmakerweb.com/threads/map-as-title-screen.10202/
页: [1]
查看完整版本: Map as Title Screen