맵/타일

World Map version 1.2

by 백호 posted Feb 22, 2009
?

단축키

Prev이전 문서

Next다음 문서

ESC닫기

크게 작게 위로 아래로 댓글로 가기 인쇄
#==============================================================================
# World Map Version 1.2
# Made by: Icedmetal57
# Date: July 19th, 2006
#------------------------------------------------------------------------------
# Instructions
# All that needs to be done is just copy and paste this into a new script,
# above Main. Also change map.png to the Picture file name of the map, that
# is going to be used for the map image and change hero.png to the Picture file
# name of the hero icon, that is gonna show up when at important locations.
#==============================================================================

#==============================================================================
# ** Window_WorldMapHelp
#------------------------------------------------------------------------------
#  This is the window that displays the little text
#==============================================================================

class Window_WorldMapHelp < Window_Base
  # ------------------------------------
  def initialize
    super(340, 0, 300, 80)
    self.contents = Bitmap.new(width - 32, height - 32)
    self.contents.font.name = $fontface # default font type
    self.contents.font.size = 18 # font size
    refresh
  end
  # ------------------------------------
  def refresh
    self.contents.clear
    self.contents.draw_text(0, 0, 160, 32, "Press ESC to exit", 2)
    self.contents.font.color = system_color
    self.contents.draw_text(0, 20, 220, 32, "Current Location:")
    self.contents.font.color = normal_color
    self.contents.draw_text(120, 20, 220, 32, $game_map.name.to_s)
  end
end

class Window_WorldMapLocation < Window_Base
  # ------------------------------------
  def initialize
    super(0, 0, 64, 64)
    self.contents = Bitmap.new(width - 32, height - 32)
    self.contents.font.name = $fontface # default font type
    self.contents.font.size = 18 # font size
    refresh
  end
  # ------------------------------------
  def refresh
    self.contents.clear
    locate = RPG::Cache.picture("hero.png") # picture of hero icon
    hero = Rect.new(0, 0, locate.width, locate.height)
    self.contents.blt(0, -4.9, locate, hero)
  end
end


#==============================================================================
# ■ Scene_Map
#------------------------------------------------------------------------------
#  Displays a map
#==============================================================================

class Scene_WorldMap
  def main
    @map = Sprite.new
    # change "map.png" to whatever you wish to show
    @map.bitmap = RPG::Cache.picture("world_map.png")
    @map_help = Window_WorldMapHelp.new
    @map_help.opacity = 160
    #--------------------------------------------------------------------------
    # All Map Id's go here
    #--------------------------------------------------------------------------
    if $game_map.map_id == 4 # Change to the map id number of the landmark/city
      @location = Window_WorldMapLocation.new
      @location.x = 335 # x-coordinate on map of landmark/city of map id
      @location.y = 185 # y-coordinate on map of landmark/city of map id
      @location.opacity = 0
    elsif $game_map.map_id == 15
      @location = Window_WorldMapLocation.new
      @location.x = 340
      @location.y = 227
      @location.opacity = 0
    else
      @location = Window_WorldMapLocation.new
      @location.x = 700
      @location.y = 500
      @location.opacity = 0
    end
    #--------------------------------------------------------------------------
    # All Map Id's go up there
    #--------------------------------------------------------------------------
    Graphics.transition
    loop do
      Graphics.update
      Input.update
      update
      if $scene != self
        break
      end
    end
    Graphics.freeze
    @map_help.dispose
    @location.dispose
  end
  #--------------------------------------------------------------------------
  # ● Update
  #--------------------------------------------------------------------------
  def update
    @map_help.update
    @location.update
    if @map_help.active
      update_command
      return
    end
  end
  #--------------------------------------------------------------------------
  # ● Update Command
  #--------------------------------------------------------------------------
  def update_command
    if Input.trigger?(Input::B)
      $game_system.se_play($data_system.cancel_se)
      $scene = Scene_Map.new
    end
  end
end