设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 1868|回复: 7
打印 上一主题 下一主题

[已经解决] 显示坐标与小地图

 关闭 [复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
43 小时
注册时间
2009-7-8
帖子
154
跳转到指定楼层
1
发表于 2009-8-27 12:30:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
各位,问大家个问题,我用了一个小地图脚本,把它放在MAIN前面,然后再用显示坐标的脚本放在小地图的前面,为什么用完之后就不能小地图了呢?
头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
50
在线时间
0 小时
注册时间
2009-5-10
帖子
101
2
发表于 2009-8-27 13:12:22 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
43 小时
注册时间
2009-7-8
帖子
154
3
 楼主| 发表于 2009-8-27 13:33:06 | 只看该作者
做游戏要用啊
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
50
在线时间
0 小时
注册时间
2009-5-10
帖子
101
4
发表于 2009-8-27 15:53:01 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
93 小时
注册时间
2008-5-16
帖子
745
5
发表于 2009-8-27 16:20:18 | 只看该作者
Scene_Map的def main被重写了吧.
把脚本贴上来
回复 支持 反对

使用道具 举报

Lv3.寻梦者 (暗夜天使)

名侦探小柯

梦石
0
星屑
3309
在线时间
3620 小时
注册时间
2006-9-6
帖子
37400

开拓者贵宾第3届短篇游戏大赛主流游戏组亚军第5届短篇游戏比赛亚军

6
发表于 2009-8-27 16:27:04 | 只看该作者
小地图和显示坐标的脚本可能冲突了吧,毕竟某种程度上讲功能是一样的。
把坐标的去掉吧。
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
758
在线时间
210 小时
注册时间
2009-5-25
帖子
84
7
发表于 2009-8-27 20:43:41 | 只看该作者
小地图脚本
#==============================================================================
# 本脚本来自www.66RPG.com,使用和转载请保留此信息
#==============================================================================

#==============================================================================
# ■ 縮小地图的表示(ver 0.999)
# by ピニョン clum-sea
#==============================================================================
#==============================================================================
# □ 前期定义
#==============================================================================
module PLAN_Map_Window
  WIN_X       = 8         # 地图的 X 座標
  WIN_Y       = 8         # 地图的 Y 座標
  WIN_WIDTH   = 8*32      # 地图的宽度
  WIN_HEIGHT  = 6*32      # 地图的高度
  ZOOM        = 4.0       # 地图的放缩比例
  WINDOWSKIN  = ""        # 自定义地图窗口素材,如果留空则是默认的

  ON_OFF_KEY  = Input::A  # 打开地图的按钮,A就是键盘的Z键

  SWITCH      = 100       # 禁用地图功能的开关,默认这个就是打开100号开关则禁止
                          # 使用地图功能,关闭则可以使用地图功能

  WINDOW_MOVE = true      # 窗口中的地图跟随移动,(true:跟随, false:固定)
  
  OVER_X      = 632 - WIN_WIDTH   # 移動后的 X 座標(初期位置と往復します)
  OVER_Y      = 8         # 移動后的 Y 座標(初期位置と往復します)

  OPACITY     = 192       # 窗口的透明度
  C_OPACITY   = 192       # 地图的透明度
  VISIBLE     = true      # 最初是否可见
end
#==============================================================================
# ■ Game_Temp
#==============================================================================
class Game_Temp
  attr_accessor  :map_visible     # 地图的表示状態
  alias plan_map_window_initialize initialize
  def initialize
    plan_map_window_initialize
    @map_visible = true
  end
end
#==============================================================================
# ■ Scene_Map
#==============================================================================
class Scene_Map
  #--------------------------------------------------------------------------
  # ● 主处理
  #--------------------------------------------------------------------------
  alias plan_map_window_main main
  def main
    @map_window         = Window_Map.new
    @map_window.visible = $game_temp.map_visible
    plan_map_window_main
    @map_window.dispose
  end
  #--------------------------------------------------------------------------
  # ● 更新
  #--------------------------------------------------------------------------
  alias plan_map_window_update update
  def update
    $game_temp.map_visible = @map_window.visible
    plan_map_window_update
    unless $game_switches[PLAN_Map_Window::SWITCH]      
      if Input.trigger?(PLAN_Map_Window::ON_OFF_KEY)
        if @map_window.visible
          @map_window.visible = false
        else
          @map_window.visible = true
        end
      end
    else
      if @map_window.visible
        @map_window.visible = false
      end
    end
    if @map_window.visible
      @map_window.update
    end
  end
  #--------------------------------------------------------------------------
  # ● 场所移动的变化
  #--------------------------------------------------------------------------
  alias plan_map_window_transfer_player transfer_player
  def transfer_player
    visible = @map_window.visible
    @map_window.visible = false
    plan_map_window_transfer_player
    @map_window.dispose
    @map_window = Window_Map.new
    @map_window.visible = visible
  end
end
#==============================================================================
# ■ Window_Map
#==============================================================================
class Window_Map < Window_Base
  #--------------------------------------------------------------------------
  # ● 初始化
  #--------------------------------------------------------------------------
  def initialize
    x = PLAN_Map_Window::WIN_X
    y = PLAN_Map_Window::WIN_Y
    w = PLAN_Map_Window::WIN_WIDTH
    h = PLAN_Map_Window::WIN_HEIGHT
    super(x, y, w, h)
    unless PLAN_Map_Window::WINDOWSKIN.empty?
      self.windowskin = RPG::Cache.windowskin(PLAN_Map_Window::WINDOWSKIN)
    end
    self.contents = Bitmap.new(width - 32, height - 32)
    self.opacity = PLAN_Map_Window::OPACITY
    self.contents_opacity = PLAN_Map_Window::C_OPACITY
    @map_data = $game_map.data
    @tileset = RPG::Cache.tileset($game_map.tileset_name)
    @autotiles = []
    for i in 0..6
      autotile_name = $game_map.autotile_names
      @autotiles = RPG::Cache.autotile(autotile_name)
    end
    @old_real_x = $game_player.real_x
    @old_real_y = $game_player.real_y
    @all_map = make_all_map
    self.visible = PLAN_Map_Window::VISIBLE
    refresh
  end
  #--------------------------------------------------------------------------
  # ● 缩小图做成
  #--------------------------------------------------------------------------
  def make_all_map
    all_map = Bitmap.new($game_map.width * 32, $game_map.height * 32)
    for y in 0...$game_map.height
      for x in 0...$game_map.width
        for z in 0...3
          tile_num = @map_data[x, y, z]
          next if tile_num == nil
          if tile_num < 384
            if tile_num >= 48
              tile_num -= 48
              src_rect = Rect.new(32, 2 * 32, 32, 32)
              all_map.blt(x * 32, y * 32, @autotiles[tile_num / 48], src_rect)
            end
          else
            tile_num -= 384
            src_rect = Rect.new(tile_num % 8 * 32, tile_num / 8 * 32, 32, 32)
            all_map.blt(x * 32, y * 32, @tileset, src_rect)
          end
        end
      end
    end
    w = ($game_map.width / PLAN_Map_Window::ZOOM) * 32
    h = ($game_map.height / PLAN_Map_Window::ZOOM) * 32
    ret_bitmap = Bitmap.new(w, h)
    src_rect = Rect.new(0, 0, all_map.width, all_map.height)
    dest_rect = Rect.new(0, 0, ret_bitmap.width, ret_bitmap.height)
    ret_bitmap.stretch_blt(dest_rect, all_map, src_rect)
    all_map.dispose
    return ret_bitmap
  end
  #--------------------------------------------------------------------------
  # ● 刷新
  #--------------------------------------------------------------------------
  def refresh
    self.contents.clear
    one_tile_size = 32 / PLAN_Map_Window::ZOOM
    x = $game_player.real_x - 128 * (self.contents.width / one_tile_size) / 2
    y = $game_player.real_y - 128 * (self.contents.height / one_tile_size) / 2
    x = x * one_tile_size / 128
    y = y * one_tile_size / 128
    half_width = self.contents.width * 128 / 2
    rest_width = ($game_map.width * 128 - $game_player.real_x) * one_tile_size
    rev_x = 0
    if @all_map.width < self.contents.width
      rev_x = (half_width - $game_player.real_x * one_tile_size) / 128
      rev_x -= (self.contents.width - @all_map.width) / 2
      x += rev_x
    elsif half_width > $game_player.real_x * one_tile_size
      rev_x = (half_width - $game_player.real_x * one_tile_size) / 128
      x += rev_x
    elsif half_width > rest_width
      rev_x = -((half_width - rest_width) / 128)
      x += rev_x
    end
    half_height = self.contents.height * 128 / 2
    rest_height = ($game_map.height * 128 - $game_player.real_y) * one_tile_size
    rev_y = 0
    if @all_map.height < self.contents.height
      rev_y = (half_height - $game_player.real_y * one_tile_size) / 128
      rev_y -= (self.contents.height - @all_map.height) / 2
      y += rev_y
    elsif half_height > $game_player.real_y * one_tile_size
      rev_y = (half_height - $game_player.real_y * one_tile_size) / 128
      y += rev_y
    elsif half_height > rest_height
      rev_y = -((half_height - rest_height) / 128)
      y += rev_y
    end
    src_rect = Rect.new(x, y, self.contents.width, self.contents.height)
    self.contents.blt(0, 0, @all_map, src_rect)
    if PLAN_Map_Window::WINDOW_MOVE == true
      w = self.x..self.x + self.width
      h = self.y..self.y + self.height
      if w === $game_player.screen_x and h === $game_player.screen_y
        if self.x == PLAN_Map_Window::WIN_X and self.y == PLAN_Map_Window::WIN_Y
          self.x = PLAN_Map_Window::OVER_X
          self.y = PLAN_Map_Window::OVER_Y
        else
          self.x = PLAN_Map_Window::WIN_X
          self.y = PLAN_Map_Window::WIN_Y
        end
      end
    end
    if $game_party.actors.size > 0
      for i in [2, 1, 0]
        tile = @map_data[$game_player.x, $game_player.y, i]
        next if tile == 0
        return if $game_map.priorities[tile] > 0
      end
      actor = $game_party.actors[0]
      bitmap = RPG::Cache.character(actor.character_name, actor.character_hue)
      width = bitmap.width / 4
      height = bitmap.height / 4
      src_rect = Rect.new(0, 0, width, height)
      w = width / PLAN_Map_Window::ZOOM
      h = height / PLAN_Map_Window::ZOOM
      x = self.contents.width / 2 - w / 2 + one_tile_size / 2 - rev_x
      y = self.contents.height / 2 - h / 2 - rev_y
      dest_rect = Rect.new(x, y, w, h)
      self.contents.stretch_blt(dest_rect, bitmap, src_rect)
    end
  end
  #--------------------------------------------------------------------------
  # ● 更新
  #--------------------------------------------------------------------------
  def update
    super
    if @old_real_x != $game_player.real_x or @old_real_y != $game_player.real_y
      @old_real_x = $game_player.real_x
      @old_real_y = $game_player.real_y
      refresh
    end
  end
  #--------------------------------------------------------------------------
  # ● 解放
  #--------------------------------------------------------------------------
  def dispose
    super
    @all_map.dispose
  end
end


#==============================================================================
# 本脚本来自www.66RPG.com,使用和转载请保留此信息
#==============================================================================


    地图坐标脚本

在事件脚本里并行次事件                   $game_switches[XY_SWITCH] = 25   这在事件脚本来调用



#==========================================================================
# 本脚本来自www.66rpg.com,用于任何游戏请保留此信息。别以为加密就可以del哦
#==========================================================================

XY_SWITCH = 25 # 当25号开关打开,本脚本才开始工作。

#==============================================================================
# ■ Window_XY
#------------------------------------------------------------------------------
#  显示坐标的窗口。
#==============================================================================
class Window_xy < Window_Base #注意前面那个window_xy是文件名
#--------------------------------------------------------------------------
# ● 初始化窗口
#--------------------------------------------------------------------------
def initialize
   super(0, 0, 160, 96)#最后面那个数字是宽要显示多个需要改大,前面一个是长~
   self.contents = Bitmap.new(width - 32, height - 32)
   self.back_opacity = 255  # 这个是背景透明
   self.opacity = 255       # 这个是边框和背景都透明
   self.contents_opacity = 255       # 这个是内容透明
   self.visible = false
   refresh
   @x = $game_player.x
   @y = $game_player.y
   @id = $game_map.map_id
end

#--------------------------------------------------------------------------
# ● 刷新
#--------------------------------------------------------------------------
def refresh
   if $game_switches[XY_SWITCH] #确定开关是否打开,可以自己改变开关
     @x = $game_player.x #获取角色X坐标
     @y = $game_player.y #获取角色Y坐标
     @id = $game_map.map_id  #获取地图编号
    self.contents.clear #清除以前的东西
    $mapnames = load_data("Data/MapInfos.rxdata") #读取地图名文件
    map_name = $mapnames[@id].name #获得地图名
    self.contents.font.color = normal_color#颜色,这里是白色~
    self.contents.draw_text(0, 0, 116, 32, map_name,2)
    self.contents.font.color = system_color#颜色,暗蓝色
    self.contents.draw_text(0, 32, 120, 32, "X:")#显示X这个字的位置,引号里面的内容随便改,比如"X坐标地址"
    self.contents.font.color = normal_color#颜色,这里是白色~
    self.contents.draw_text(0, 32, 52, 32, @x.to_s,2)
    self.contents.font.color = system_color#上面那个是X坐标的变量,可以自己更改变量名~
    self.contents.draw_text(64, 32, 128, 32, "Y:")#显示Y这个字~
    self.contents.font.color = normal_color
    self.contents.draw_text(0, 32, 116, 32, @y.to_s,2)
   end
end
#--------------------------------------------------------------------------
# ● 判断文字刷新。节约内存用
#--------------------------------------------------------------------------
def judge
   return true if @x != $game_player.x
   return true if @y != $game_player.y
   return true if @id != $game_map.map_id
   return false
end
end
###########################################################################
#                           下面的东西不需要掌握~                         #
###########################################################################

class Scene_Map
alias xy_66rpg_main main
def main
   @xy_window = Window_xy.new
   @xy_window.x = 640 - 160
   @xy_window.y = 480 - 96
   @xy_window.opacity = 0
   xy_66rpg_main
   @xy_window.dispose
end
#--------------------------------------------------------------------------
# ● 刷新画面
#--------------------------------------------------------------------------
alias xy_66rpg_update update
def update
   xy_66rpg_update
   if $game_switches[XY_SWITCH]
     @xy_window.visible = true      
     @xy_window.refresh if @xy_window.judge
   else
     @xy_window.visible = false
   end
end
end
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
60
在线时间
5 小时
注册时间
2007-7-19
帖子
159
8
发表于 2009-8-28 10:32:50 | 只看该作者
本帖最后由 fux2 于 2010-12-26 08:34 编辑

我两个都用了,不过没冲突啊,给你一个我并在一起并小加修改的脚本吧,是仿仙4的效果,你觉得马马虎虎就拿去吧,偶不想再把我脚本改回去了…………
  1. #==============================================================================
  2. # 本脚本来自[url]www.66RPG.com[/url],使用和转载请保留此信息
  3. #==============================================================================

  4. #==============================================================================
  5. # ■ 縮小地图的表示(ver 0.999)
  6. # by ピニョン clum-sea
  7. #==============================================================================
  8. #==============================================================================
  9. # □ 前期定义
  10. #==============================================================================
  11. module PLAN_Map_Window
  12.   WIN_X       = 0         # 地图的 X 座標
  13.   WIN_Y       = 280         # 地图的 Y 座標
  14.   WIN_WIDTH   = 8*27      # 地图的宽度
  15.   WIN_HEIGHT  = 6*38      # 地图的高度
  16.   ZOOM        = 4.0       # 地图的放缩比例
  17.   WINDOWSKIN  = "001-Blue01"        # 自定义地图窗口素材,如果留空则是默认的

  18.   ON_OFF_KEY  = Input::L  # 打开地图的按钮,A就是键盘的Z键

  19.   SWITCH      = 1       #打开地图功能的开关                        

  20.   WINDOW_MOVE = false      # 窗口中的地图跟随移动,(true:跟随, false:固定)
  21.   
  22.   OVER_X      = 632 - WIN_WIDTH   # 移動后的 X 座標(初期位置と往復します)
  23.   OVER_Y      = 8         # 移動后的 Y 座標(初期位置と往復します)

  24.   OPACITY     = 160       # 窗口的透明度
  25.   C_OPACITY   = 255       # 地图的透明度
  26.   VISIBLE     = true      # 最初是否可见
  27. end
  28. #==============================================================================
  29. # ■ Game_Temp
  30. #==============================================================================
  31. class Game_Temp
  32.   attr_accessor  :map_visible     # 地图的表示状態
  33.   alias plan_map_window_initialize initialize
  34.   def initialize
  35.     plan_map_window_initialize
  36.     @map_visible = false
  37.   end
  38. end
  39. #==============================================================================
  40. # ■ Scene_Map
  41. #==============================================================================
  42. class Scene_Map
  43.   #--------------------------------------------------------------------------
  44.   # ● 主处理
  45.   #--------------------------------------------------------------------------
  46.   alias plan_map_window_main main
  47.   def main
  48.     @map_window         = Window_Map.new
  49.     @map_window.visible = $game_temp.map_visible
  50.     plan_map_window_main
  51.     @map_window.dispose
  52.   end
  53.   #--------------------------------------------------------------------------
  54.   # ● 更新
  55.   #--------------------------------------------------------------------------
  56.   alias plan_map_window_update update
  57.   def update
  58.     $game_temp.map_visible = @map_window.visible
  59.     plan_map_window_update
  60.     if $game_switches[PLAN_Map_Window::SWITCH] and $game_temp.message_window_showing == false
  61.      if Input.trigger?(PLAN_Map_Window::ON_OFF_KEY)
  62.         if @map_window.visible
  63.           @map_window.visible = false
  64.         else
  65.           @map_window.visible = true
  66.         end
  67.       end
  68.     else
  69.       if @map_window.visible
  70.         @map_window.visible = false
  71.       end
  72.     end
  73.     if @map_window.visible
  74.       @map_window.update
  75.     end
  76.   end
  77.   #--------------------------------------------------------------------------
  78.   # ● 场所移动的变化
  79.   #--------------------------------------------------------------------------
  80.   alias plan_map_window_transfer_player transfer_player
  81.   def transfer_player
  82.     visible = @map_window.visible
  83.     @map_window.visible = false
  84.     plan_map_window_transfer_player
  85.     @map_window.dispose
  86.     @map_window = Window_Map.new
  87.     @map_window.visible = visible
  88.   end
  89. end
  90. #==============================================================================
  91. # ■ Window_Map
  92. #==============================================================================
  93. class Window_Map < Window_Base
  94.   #--------------------------------------------------------------------------
  95.   # ● 初始化
  96.   #--------------------------------------------------------------------------
  97.   def initialize
  98.     x = PLAN_Map_Window::WIN_X
  99.     y = PLAN_Map_Window::WIN_Y
  100.     w = PLAN_Map_Window::WIN_WIDTH
  101.     h = PLAN_Map_Window::WIN_HEIGHT
  102.     super(x, y, w, h)
  103.     unless PLAN_Map_Window::WINDOWSKIN.empty?
  104.       self.windowskin = RPG::Cache.windowskin(PLAN_Map_Window::WINDOWSKIN)
  105.     end
  106.     self.contents = Bitmap.new(width - 32 , height - 32)
  107.     self.opacity = PLAN_Map_Window::OPACITY
  108.     self.contents_opacity = PLAN_Map_Window::C_OPACITY
  109.     @map_data = $game_map.data
  110.     @tileset = RPG::Cache.tileset($game_map.tileset_name)
  111.     @autotiles = []
  112.     for i in 0..6
  113.       autotile_name = $game_map.autotile_names[i]
  114.       @autotiles[i] = RPG::Cache.autotile(autotile_name)
  115.     end
  116.     @old_real_x = $game_player.real_x
  117.     @old_real_y = $game_player.real_y
  118.     @all_map = make_all_map
  119.     self.visible = PLAN_Map_Window::VISIBLE
  120.     refresh
  121.   end
  122.   #--------------------------------------------------------------------------
  123.   # ● 缩小图做成
  124.   #--------------------------------------------------------------------------
  125.   def make_all_map
  126.     all_map = Bitmap.new($game_map.width * 32, $game_map.height * 32)
  127.     for y in 0...$game_map.height
  128.       for x in 0...$game_map.width
  129.         for z in 0...3
  130.           tile_num = @map_data[x, y, z]
  131.           next if tile_num == nil
  132.           if tile_num < 384
  133.             if tile_num >= 48
  134.               tile_num -= 48
  135.               src_rect = Rect.new(32, 2 * 32, 32, 32)
  136.               all_map.blt(x * 32, y * 32, @autotiles[tile_num / 48], src_rect)
  137.             end
  138.           else
  139.             tile_num -= 384
  140.             src_rect = Rect.new(tile_num % 8 * 32, tile_num / 8 * 32, 32, 32)
  141.             all_map.blt(x * 32, y * 32, @tileset, src_rect)
  142.           end
  143.         end
  144.       end
  145.     end
  146.     w = ($game_map.width / PLAN_Map_Window::ZOOM) * 32
  147.     h = ($game_map.height / PLAN_Map_Window::ZOOM) * 32
  148.     ret_bitmap = Bitmap.new(w, h)
  149.     src_rect = Rect.new(0, 0, all_map.width, all_map.height)
  150.     dest_rect = Rect.new(0, 0, ret_bitmap.width, ret_bitmap.height)
  151.     ret_bitmap.stretch_blt(dest_rect, all_map, src_rect)
  152.     all_map.dispose
  153.     return ret_bitmap
  154.   end
  155.   #--------------------------------------------------------------------------
  156.   # ● 刷新
  157.   #--------------------------------------------------------------------------
  158.   def refresh
  159.     self.contents.clear
  160.     one_tile_size = 32 / PLAN_Map_Window::ZOOM
  161.     x = $game_player.real_x - 128 * (self.contents.width / one_tile_size) / 2
  162.     y = $game_player.real_y - 128 * (self.contents.height / one_tile_size) / 2
  163.     x = x * one_tile_size / 128
  164.     y = y * one_tile_size / 128
  165.     half_width = self.contents.width * 128 / 2
  166.     rest_width = ($game_map.width * 128 - $game_player.real_x) * one_tile_size
  167.     rev_x = 0
  168.     if @all_map.width < self.contents.width
  169.       rev_x = (half_width - $game_player.real_x * one_tile_size) / 128
  170.       rev_x -= (self.contents.width - @all_map.width) / 2
  171.       x += rev_x
  172.     elsif half_width > $game_player.real_x * one_tile_size
  173.       rev_x = (half_width - $game_player.real_x * one_tile_size) / 128
  174.       x += rev_x
  175.     elsif half_width > rest_width
  176.       rev_x = -((half_width - rest_width) / 128)
  177.       x += rev_x
  178.     end
  179.     half_height = self.contents.height * 128 / 2
  180.     rest_height = ($game_map.height * 128 - $game_player.real_y) * one_tile_size
  181.     rev_y = 0
  182.     if @all_map.height < self.contents.height
  183.       rev_y = (half_height - $game_player.real_y * one_tile_size) / 128
  184.       rev_y -= (self.contents.height - @all_map.height) / 2
  185.       y += rev_y
  186.     elsif half_height > $game_player.real_y * one_tile_size
  187.       rev_y = (half_height - $game_player.real_y * one_tile_size) / 128
  188.       y += rev_y
  189.     elsif half_height > rest_height
  190.       rev_y = -((half_height - rest_height) / 128)
  191.       y += rev_y
  192.     end
  193.     src_rect = Rect.new(x, y, self.contents.width, self.contents.height)
  194.     self.contents.blt(0, 0, @all_map, src_rect)
  195.     if PLAN_Map_Window::WINDOW_MOVE == true
  196.       w = self.x..self.x + self.width
  197.       h = self.y..self.y + self.height
  198.       if w === $game_player.screen_x and h === $game_player.screen_y
  199.         if self.x == PLAN_Map_Window::WIN_X and self.y == PLAN_Map_Window::WIN_Y
  200.           self.x = PLAN_Map_Window::OVER_X
  201.           self.y = PLAN_Map_Window::OVER_Y
  202.         else
  203.           self.x = PLAN_Map_Window::WIN_X
  204.           self.y = PLAN_Map_Window::WIN_Y
  205.         end
  206.       end
  207.     end
  208.     if $game_party.actors.size > 0
  209.       for i in [2, 1, 0]
  210.         tile = @map_data[$game_player.x, $game_player.y, i]
  211.         next if tile == 0
  212.         return if $game_map.priorities[tile] > 0
  213.       end
  214.       actor = $game_party.actors[0]
  215.       bitmap = RPG::Cache.character(actor.character_name, actor.character_hue)
  216.       width = bitmap.width / 4
  217.       height = bitmap.height / 4
  218.       src_rect = Rect.new(0, 0, width, height)
  219.       w = width / PLAN_Map_Window::ZOOM
  220.       h = height / PLAN_Map_Window::ZOOM
  221.       x = self.contents.width / 2 - w / 2 + one_tile_size / 2 - rev_x
  222.       y = self.contents.height / 2 - h / 2 - rev_y
  223.       dest_rect = Rect.new(x, y, w, h)
  224.       self.contents.stretch_blt(dest_rect, bitmap, src_rect)
  225.     end
  226.   end
  227.   #--------------------------------------------------------------------------
  228.   # ● 更新
  229.   #--------------------------------------------------------------------------
  230.   def update
  231.     super
  232.     if @old_real_x != $game_player.real_x or @old_real_y != $game_player.real_y
  233.       @old_real_x = $game_player.real_x
  234.       @old_real_y = $game_player.real_y
  235.       refresh
  236.     end
  237.   end
  238.   #--------------------------------------------------------------------------
  239.   # ● 解放
  240.   #--------------------------------------------------------------------------
  241.   def dispose
  242.     super
  243.     @all_map.dispose
  244.   end
  245. end

  246. #==============================================================================
  247. # 本脚本来自[url]www.66RPG.com[/url],使用和转载请保留此信息
  248. #==============================================================================

  249. XY_SWITCH = 8 # 当8号开关打开,本脚本才开始工作。

  250. #==============================================================================
  251. # ■ Window_XY
  252. #------------------------------------------------------------------------------
  253. #  显示坐标的窗口。
  254. #==============================================================================
  255. class Window_xy < Window_Base#注意前面那个window_xy是文件名
  256. #--------------------------------------------------------------------------
  257. # ● 初始化窗口
  258. #--------------------------------------------------------------------------
  259. def initialize
  260.    super(0, 0, 280, 96)#最后面那个数字是宽要显示多个需要改大,前面一个是长~
  261.    self.contents = Bitmap.new(width - 32, height - 32)
  262.   self.back_opacity = 255  # 这个是背景透明
  263.    self.opacity = 255       # 这个是边框和背景都透明
  264.    self.contents_opacity = 255       # 这个是内容透明
  265.    self.visible = false
  266.    refresh
  267.    @x = $game_player.x
  268.    @y = $game_player.y
  269.    @id = $game_map.map_id
  270. end

  271. #--------------------------------------------------------------------------
  272. # ● 刷新
  273. #--------------------------------------------------------------------------
  274. def refresh
  275.    if $game_switches[XY_SWITCH] and $game_temp.message_window_showing == false#确定开关是否打开,可以自己改变开关
  276.      @x = $game_player.x #获取角色X坐标
  277.      @y = $game_player.y #获取角色Y坐标
  278.      @id = $game_map.map_id  #获取地图编号
  279.     self.contents.clear #清除以前的东西
  280.     $mapnames = load_data("Data/MapInfos.rxdata") #读取地图名文件
  281.     map_name = $mapnames[@id].name #获得地图名
  282.      self.contents.font.size = 18
  283.     self.contents.font.color = normal_color#颜色,这里是白色~
  284.     self.contents.draw_text(85, 0, 116, 85, map_name,1)
  285.    if $game_switches[1]   
  286.     self.contents.font.color = normal_color#颜色,暗蓝色
  287.     self.contents.draw_text(105, 8, 160, 25, "X:")#显示X这个字的位置,引号里面的内容随便改,比如"X坐标地址"
  288.     self.contents.font.color = knockout_color#颜色,这里是白色~
  289.     self.contents.draw_text(-10, 8, 150, 25, @x.to_s,2)
  290.     self.contents.font.color = normal_color#上面那个是X坐标的变量,可以自己更改变量名~
  291.     self.contents.draw_text(150, 8, 210, 25, "Y:")#显示Y这个字~
  292.     self.contents.font.color = knockout_color
  293.     self.contents.draw_text(-10, 8, 200, 25, @y.to_s,2)
  294.     end
  295.   end
  296. end
  297. #--------------------------------------------------------------------------
  298. # ● 判断文字刷新。节约内存用
  299. #--------------------------------------------------------------------------
  300. def judge
  301.    return true if @x != $game_player.x
  302.    return true if @y != $game_player.y
  303.    return true if @id != $game_map.map_id
  304.    return false
  305. end
  306. end


  307. class Scene_Map
  308. alias xy_66rpg_main main
  309. def main
  310.    @xy_window = Window_xy.new
  311.    @xy_window.windowskin = RPG::Cache.windowskin("地图名窗口")
  312.    @xy_window.x = -15
  313.    @xy_window.y = 480 - 70
  314.    @xy_window.z = 999
  315.    @xy_window.opacity = 255
  316.    xy_66rpg_main
  317.    @xy_window.dispose
  318. end
  319. #--------------------------------------------------------------------------
  320. # ● 刷新画面
  321. #--------------------------------------------------------------------------
  322. alias xy_66rpg_update update
  323. def update
  324.    xy_66rpg_update
  325.    if $game_switches[XY_SWITCH] and $game_temp.message_window_showing == false
  326.      @xy_window.visible = true     
  327.      @xy_window.refresh if @xy_window.judge
  328.    else
  329.      @xy_window.visible = false
  330.    end
  331. end
  332. end
复制代码
就是左下角那样的地图
这里是脚本里用到的皮肤,记得去背景换名字
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2025-1-10 11:54

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表