Map as Title Screen

● ARCHIVED · READ-ONLY
Started by nthcat 34 posts Page 1 of 2 View original ↗

  1. 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

    Spoiler
    Spoiler



    shot1.png


    shot2.png


    shot3.png


    shot4.png


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


    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
    #--------------------------------------------------------------------------
    # * [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



    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
  2. Add weather effects, etc. (of course, by using weather scripts and adding them to your map)
    How about the weather events?
  3. @Tsukihime Yes, you can also add them. 

    EDIT: I placed a screenshot showing weather effects can also be used alongside the script.
  4. only issue i can see with this is that ctrl no longer allows u to ignore impassable tarrain

    do other debug options still work not tried though
  5. @pclaydon - It's a title screen, so the player is not allowed to move.

    UPDATE:
    Fixed issue when user can access the debug menu.
     
  6. how about event? does it works? (ex i use event and put it to autostart/paralel process trigger)

    if yes this is really great script to have.

    we can combine show pictures to create cool sequence of title screen. :D .
  7. @estriole - Yes, all types of events. Actually in the fourth screenshot (the one with MA's Hover Alerts), the rain is set on parallel process.
  8. Would making an Animal Crossing intro be feasible with this script?

    Here's what it looks like in the actual game, btw:



    The title screen is pretty much a villager or (in the gamecube version) a random player, walking around while the camera follows him/her while also displaying the logo and a "Press :insertbutton here:" prompt. 
  9. This seems very similar to an eventing title screen I used back then for RMXP for my first real game. Can I achieve something similar to this? This is my game from years ago.
  10. @Internetakias - You can. Use Galv's http://galveraxe.wordpress.com/2012/10/20/cam-control/'>Cam Control script. Set up your scene on how you want the camera to move (the script has instructions), and it should work fine. :D


    @seita - You also can. It just depends on how you set-up your scene, as long as it only happens in the configured map. The title intro can be done through eventing, I guess. There are other Title Screen scripts out there like Moghunter's. Just put it below this script. If there are bugs when using these Title Screen scripts, just leave a post here.


    Thanks!
  11. Perfect, thanks :D

    -EDIT-
    Hang on, doesn't seem to be compatible with Yami's script, and I downloaded the right script (the compatible one).

    Any thoughts on what could be wrong?
  12. @Zachy I'm sorry for replying late. It seems that I forgot to add some lines in the update method. It's fixed now.

    If you still encounter problems, leave it here. :D
  13. Works fine now, thanks very much! :)

    (Sorry for my late reply too) 
  14. Sorry if this is a necro post but I don't see the Map i selected when starting the game, I see the default title screen.
  15. Kalacious said:
    Sorry if this is a necro post but I don't see the Map i selected when starting the game, I see the default title screen.
    We can't help you without more info on what you've done.

    For example, the link to the script provides two different script versions - which one did you use?

    What other scripts do you use? it looks like the script doesn't get started or initialized if nothing had changed, and that often means that another script blocks the function and you'll have to reorder your scripts.

    Screenshots of your map properties and how you select that map for title would also help to check if you simply mistyped a name...
  16. @Kalacious You might want to set the title graphic to none. I think that's the reason why the title graphic is showing instead of the map. :)
  17. UPDATE

    Version 1.1

    - Merged with the Yami TD compatible script

    - Now compatible with Khas's Awesome Light Effects script
  18. Maybe I'm just way tooooooooo inexperienced, but...

    I only always get the error "line 37: Error occured, uninitialised constant object:: Scene_Base"

    I didn't change anything apart from the Map ID in the config-part. v.v I'm sorry, it's probably actually a very obvious mistake, but I'm completely new to this...
  19. Place this script below Materials and above Main.
  20. Thank you! I did this, now that error is gone... I do get an error called "undefined method `symbol_list' for #<Window_TitleCommand:0xa68bcbc>". The error apparently occurs in line 192 and is a NoMethodError, but I can't figure out what's wrong there.