Envision, Create, Share

Welcome to HBGames, a leading amateur game development forum and Discord server. All are welcome, and amongst our ranks you will find experts in their field from all aspects of video game design and development.

Make Zone Texts Fade After A Time?

My husband is setting up his maps so that when you enter the town from the starting house, it says the name of the town on the screen. Unfortunately, it looks like you have to hit enter to continue playing once that happens.

Is there a way to display the name of the town as you enter it without having to make the player hit enter? Can you set it so the text will fade after a few seconds instead? How?

Thanks again so much!
 
@yeyinde in our project, we've already altered the default classes... the SDK says it does something to the default classes... If we install it, will it mess up the classes as we've altered them?

@sillypieman I looked at Moghunter's scripts on the only thread by him... I don't see anything that actually does what I'm looking for... Yeyinde's script does what I need, just not sure that I want the SDK.

Thank you both!

Ack! I figured it out... Moghunter's script is perfect.. just didn't understand how to get it into the game when I posted before. I didn't find the actual script. *blush*

Thanks :)
Now I need to see if there is a way to edit Moghunter's script so that longer words will show up on that... My map names are showing up on the bar just fine, but the whole name doesn't fit on some of them. :(
 
I edited Yeyinde's script, so you can use it without SDK
But I didn't test it.
Code:
#============================================================================
# ** Map Location Popup
#----------------------------------------------------------------------------
# Yeyinde
# 1.0.0
# 06/07/07
#============================================================================

#==============================================================================
# ** Location_Popup
#------------------------------------------------------------------------------
#  Customization module
#==============================================================================

module Location_Popup
  # Display Type (0:text 1:image)
  DISPLAY_TYPE = 0
  # Show Type (0:fade 1:scroll)
  SHOW_TYPE = 1
  # Showing Duration (Excludes transition time) - Units: Frames
  SHOW_TIME = 100
  # Transition Duration (For one transition) - Units: Frames
  TRANSITION_TIME = 10
  # Image Type (0:MapID 1:MapName)
  IMAGE_TYPE = 0
  # Image Prefix (For DISPLAY_TYPE 1)
  IMAGE_PREFIX = 'Location_'
  # Image Sufix (For DISPLAY_TYPE 1)
  IMAGE_SUFFIX = ''
  # Popup exemptions (Syntax: [map_id1, mapid2, etc.] EX. [1, 5, 6])
  NO_POPUP_MAPS = []
end

#==============================================================================
# ** Game_Temp
#------------------------------------------------------------------------------
#  This class handles temporary data that is not included with save data.
#  Refer to "$game_temp" for the instance of this class.
#==============================================================================

class Game_Temp
  #---------------------------------------------------------------------------
  # * Aliasing
  #---------------------------------------------------------------------------
  alias_method :map_name_popup_int, :initialize
  #---------------------------------------------------------------------------
  # * Public Instance Variables
  #---------------------------------------------------------------------------
  attr_accessor :new_location_name
  attr_accessor :location_popup_show
  #---------------------------------------------------------------------------
  # * Object Initialization
  #---------------------------------------------------------------------------
  def initialize
    # Call aliased method
    map_name_popup_int
    # Crate new variables
    @new_location_name = ''
    @location_popup_show = false
  end
end

#==============================================================================
# ** Game_Map
#------------------------------------------------------------------------------
#  This class handles the map. It includes scrolling and passable determining
#  functions. Refer to "$game_map" for the instance of this class.
#==============================================================================

class Game_Map
  #---------------------------------------------------------------------------
  # * Aliasing
  #---------------------------------------------------------------------------
  alias_method :map_name_popup_setup, :setup
  #--------------------------------------------------------------------------
  # * Setup
  #     map_id : map ID
  #--------------------------------------------------------------------------
  def setup(map_id)
    # Call aliased method
    map_name_popup_setup(map_id)
    # Set temporary variable
    if Location_Popup::DISPLAY_TYPE == 0 || 
        (Location_Popup::DISPLAY_TYPE == 1 && Location_Popup::IMAGE_TYPE == 1)
      location_text = $data_mapinfos[@map_id].name
    else
      location_text = @map_id.to_s
    end
    $game_temp.new_location_name = location_text
    $game_temp.location_popup_show = true
  end
end

#==============================================================================
# ** Sprite_LocationPopup
#------------------------------------------------------------------------------
#  This sprite is used to display the current location when it is entered.  It
#  observes $game_temp.new_location_name to know when to refresh
#==============================================================================

class Sprite_LocationPopup < Sprite
  #---------------------------------------------------------------------------
  # * Object Initialization
  #---------------------------------------------------------------------------
  def initialize
    # Call superclass method
    super()
    # Set co-ordinates
    self.x = 640
    self.y = 16
    self.z = 999999
    # Set some variables to save space
    @show_time = Location_Popup::SHOW_TIME
    @transition_time = [Location_Popup::TRANSITION_TIME, 1].max
    # Refresh
    refresh
  end
  #---------------------------------------------------------------------------
  # * Reset Variables
  #---------------------------------------------------------------------------
  def reset_variables
    @current_location = $game_temp.new_location_name
    @frames_remaining = @show_time + @transition_time * 2
  end
  #---------------------------------------------------------------------------
  # * Refresh
  #---------------------------------------------------------------------------
  def refresh
    # Clear existing bitmap
    if self.bitmap != nil
      self.bitmap.dispose
      self.bitmap = nil
    end
    # Reset variables
    reset_variables
    # Stop if the location is not to be displayed on this map
    if Location_Popup::NO_POPUP_MAPS.include?($game_map.map_id) ||
        !$game_temp.location_popup_show
      @frames_remaining = 0
      return 
    end
    $game_temp.location_popup_show = false
    # Branch for text display
    if Location_Popup::DISPLAY_TYPE == 0
      text = @current_location
      bitmap = Bitmap.new(32, 32)
      width = bitmap.text_size(text).width + 8
      bitmap.dispose
      self.bitmap = Bitmap.new(width, 32)
      self.bitmap.draw_text(0, 0, width, 32, text)
    else # Branch for image display
      name = Location_Popup::IMAGE_PREFIX + @current_location + 
        Location_Popup::IMAGE_SUFFIX
      self.bitmap = RPG::Cache.picture(name)
    end
    # Reset x co-ordinates
    self.x = Location_Popup::SHOW_TYPE == 0 ? 640 - 16 - self.bitmap.width : 640
    # Set opacity if fade type
    self.opacity = 0 if Location_Popup::SHOW_TYPE == 0
  end
  #--------------------------------------------------------------------------
  # * Frame Update
  #--------------------------------------------------------------------------
  def update
    # Call superclass method
    super
    # Refresh if location was changed
    refresh if @current_location != $game_temp.new_location_name
    # If there is still a frame remaining
    if @frames_remaining > 1
      # Branch per frames remaining
      case @frames_remaining
      when (@show_time + @transition_time )...(@show_time + 
          @transition_time * 2)
        # Branch per showing type
        if Location_Popup::SHOW_TYPE == 0
          self.opacity += 256 / @transition_time
        else
          self.x -= (self.bitmap.width + 16) / @transition_time
        end
      when 1..(@transition_time + 1)
        # Branch per showing type
        if Location_Popup::SHOW_TYPE == 0
          self.opacity -= 256 / @transition_time
        else
          self.x += (self.bitmap.width + 16) / @transition_time
        end
      end
      # Remove one frame
      @frames_remaining -= 1
    end
  end
end

#==============================================================================
# ** Scene_Title
#------------------------------------------------------------------------------
#  This class performs title screen processing.
#==============================================================================

class Scene_Title
  #---------------------------------------------------------------------------
  # * Aliasing
  #---------------------------------------------------------------------------
  alias_method :map_name_popup_database, :main
  #--------------------------------------------------------------------------
  # * Main Processing : Database Initialization
  #--------------------------------------------------------------------------
  def main
    if $data_mapinfos.nil? && Location_Popup::DISPLAY_TYPE == 0 || 
        (Location_Popup::DISPLAY_TYPE == 1 && Location_Popup::IMAGE_TYPE == 1)
      # Load Mapinfos data
      $data_mapinfos = load_data('Data/MapInfos.rxdata')
    end
    # Call aliased method
    map_name_popup_database
    # If global variable $data_mapinfos has not yet been defined
    #  and if the setup is to use the map name in some way (Text/Mapname image)
  end
end

#==============================================================================
# ** Scene_Map
#------------------------------------------------------------------------------
#  This class performs map screen processing.
#==============================================================================

class Scene_Map
  #---------------------------------------------------------------------------
  # * Aliasing
  #---------------------------------------------------------------------------
  alias_method :map_name_popup_sprite, :main
  #--------------------------------------------------------------------------
  # * Main Processing : Sprite Initialization
  #--------------------------------------------------------------------------
  def main
    @location_popup_sprite = Sprite_LocationPopup.new
    map_name_popup_sprite
    @location_popup_sprite.dispose
  end
end
 
[Edit:] OKay... I thought I had figured it out. In the demo, my edit worked. It moved the text to the left, making it start at the left edge of the box. BUT, the problem is not resolved in my game. I fixed the script in the game and it did move the text to the left, but even tho the end of the text is in the middle of the box now, it still cuts off the last word halfway through. (actually halfway through a letter even.)
Like this:
http://www.arsieiuni.net/pics/maptextdemo.JPG[/IMG]

I have done all I can think of, trying to move the text around but it's not changing this problem. What I need is for someone to tell me how to change the character limit (if that's the problem) or otherwise tell me what I can do to make the full name of the map show up.

Thanks so much!

[Edit#2] Oh, I realize I forgot to mention that I also tried making the image that appears behind the location name larger... It's just a png made to the specifications of the one in the demo, but I added some length to it and it didn't help, as seen above.

Anyone have any idea at all why this is happening? I don't know what to do at all...
 

Thank you for viewing

HBGames is a leading amateur video game development forum and Discord server open to all ability levels. Feel free to have a nosey around!

Discord

Join our growing and active Discord server to discuss all aspects of game making in a relaxed environment. Join Us

Content

  • Our Games
  • Games in Development
  • Emoji by Twemoji.
    Top