查看: 1702|回复: 4

[已经过期] 使用地图名显示脚本出现点问题

[复制链接]
梦石
0
星屑
6963
在线时间
1557 小时
注册时间
2011-6-14
回帖
425
发表于 2014-9-15 21:39:32 | 显示全部楼层 |阅读模式

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

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

×
如果不删除这个段我的游戏就会跳出  self.contents.draw_text(4, 0 , width - 40, 32, $data_mapinfos[@id].name, 1)   删除了就会像图里一样不显示文字  



这段代码在演示文件上并没有问题 但是我一拉到我下载的集成脚本里面就会这样  求教如何能在上图框内让他正常显示地图名




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


#==============================================================================
# ■ 地图名显示脚本
#     by Yuee
#------------------------------------------------------------------------------
# 在Main的上方插入一个页,将本脚本复制到那页中即可
#==============================================================================

#==============================================================================
# ■ Window_MapName
#------------------------------------------------------------------------------
#  显示地图名字的窗口。
#==============================================================================

class Window_MapName < Window_Base
  #--------------------------------------------------------------------------
  # ● 类常量定义
  #--------------------------------------------------------------------------

  # 暂时屏蔽用的开关
  SWITCH = 11
  
  # 窗口位置设定
  NAME_X = 380      # 矩形左上顶点X坐标
  NAME_Y = 20       # 矩形左上顶点Y坐标
  NAME_W = 220      # 矩形宽
  NAME_H = 60       # 矩形高
  
  # 显示时间设置
  SHOW_TIME_0 = 10  # 地图名出现前等待的帧数
  SHOW_TIME_1 = 10  # 地图名从不可见变成可见的帧数
  SHOW_TIME_2 = 64  # 地图名完全可见的帧数
  SHOW_TIME_3 = 34  # 地图名从可见变成不可见的帧数
  
  # 完全可见时的透明度设置
  OPACITY_1 = 244   # 边框
  OPACITY_2 = 144   # 背景
  OPACITY_3 = 255   # 文字
  
  # 地图名字的颜色
  TEXT_COLOR = Color.new(255, 255, 255, 255)
   
  #--------------------------------------------------------------------------
  # ● 初始化状态
  #--------------------------------------------------------------------------
  def initialize
    super(NAME_X , NAME_Y, NAME_W, NAME_H)
    # 初始化窗口透明度
    self.opacity = 0
    self.back_opacity = 0
    self.contents_opacity = 0
    self.contents = Bitmap.new(width - 32, height - 32)
    # 剩余帧数初始化
    @show_time = 0
  end
  #--------------------------------------------------------------------------
  # ● 输出文字
  #--------------------------------------------------------------------------
  def setname   
    unless $game_switches[SWITCH]==true
      # 获取地图ID
      newid = $game_map.map_id
      time = SHOW_TIME_1 + SHOW_TIME_2 + SHOW_TIME_3  
      # 如果现在的地图的ID不是刚才显示的地图ID则开始显示
      if newid != @id
        @id = newid
        @show_time = SHOW_TIME_0 + SHOW_TIME_1 + SHOW_TIME_2 + SHOW_TIME_3
      # 剩余帧数为0是时,全部窗口透明
      elsif @show_time < 1
        self.opacity = 0
        self.back_opacity = 0
        self.contents_opacity = 0
        return
      end      
      self.contents.clear
      self.contents.font.color = TEXT_COLOR
      # 描绘地图名
      #self.contents.draw_text(4, 0 , width - 40, 32, $data_mapinfos[@id].name, 1)
      # 根本帧数设定窗口透明度
      if @show_time > (SHOW_TIME_2 + SHOW_TIME_3)
        self.opacity = @show_time < time ? (((OPACITY_1 / SHOW_TIME_1) * (time - @show_time)).to_i) : 0
        self.back_opacity = @show_time < time ? (((OPACITY_2 / SHOW_TIME_1 )* (time - @show_time)).to_i) : 0
        self.contents_opacity = @show_time < time ? (((OPACITY_3 / SHOW_TIME_1) * (time - @show_time)).to_i) : 0
      else
        self.opacity = @show_time < (SHOW_TIME_3 / 16 * 14) ? ((OPACITY_1 / SHOW_TIME_3) * @show_time).to_i : OPACITY_1
        self.back_opacity = @show_time < (SHOW_TIME_3 / 16 * 9) ? ((OPACITY_2 / SHOW_TIME_3) * @show_time).to_i : OPACITY_2
        self.contents_opacity = @show_time < SHOW_TIME_3 ? ((OPACITY_3 / SHOW_TIME_3)* @show_time).to_i : OPACITY_3
      end      
      @show_time -= 1
    end
  end
end

#==============================================================================
# ■ Scene_Map
#------------------------------------------------------------------------------
#  处理地图画面的类。(追加定义)
#==============================================================================

class Scene_Map
  alias smn_main main
  def main
    @mapname = Window_MapName.new
    smn_main
    @mapname.dispose
  end
  
  alias smn_update update
  def update
    @mapname.setname
    smn_update
  end
end

#==============================================================================
# ■ Scene_Title
#------------------------------------------------------------------------------
#  处理标题画面的类。(追加定义)
#==============================================================================

class Scene_Title
  alias smn_main main
  def main
    # 读取地图信息文件
    $data_mapinfos = load_data("Data/MapInfos.rxdata")
    smn_main
  end
end

#==============================================================================
# 本脚本来自www.66RPG.com,使用和转载请保留此信息
#==============================================================================
梦石
0
星屑
6963
在线时间
1557 小时
注册时间
2011-6-14
回帖
425
 楼主| 发表于 2014-9-15 21:40:01 | 显示全部楼层

使用地图名显示脚本出现点问题

如果不删除这个段我的游戏就会跳出  self.contents.draw_text(4, 0 , width - 40, 32, $data_mapinfos[@id].name, 1)   删除了就会像图里一样不显示文字  



这段代码在演示文件上并没有问题 但是我一拉到我下载的集成脚本里面就会这样  求教如何能在上图框内让他正常显示地图名




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


#==============================================================================
# ■ 地图名显示脚本
#     by Yuee
#------------------------------------------------------------------------------
# 在Main的上方插入一个页,将本脚本复制到那页中即可
#==============================================================================

#==============================================================================
# ■ Window_MapName
#------------------------------------------------------------------------------
#  显示地图名字的窗口。
#==============================================================================

class Window_MapName < Window_Base
  #--------------------------------------------------------------------------
  # ● 类常量定义
  #--------------------------------------------------------------------------

  # 暂时屏蔽用的开关
  SWITCH = 11
  
  # 窗口位置设定
  NAME_X = 380      # 矩形左上顶点X坐标
  NAME_Y = 20       # 矩形左上顶点Y坐标
  NAME_W = 220      # 矩形宽
  NAME_H = 60       # 矩形高
  
  # 显示时间设置
  SHOW_TIME_0 = 10  # 地图名出现前等待的帧数
  SHOW_TIME_1 = 10  # 地图名从不可见变成可见的帧数
  SHOW_TIME_2 = 64  # 地图名完全可见的帧数
  SHOW_TIME_3 = 34  # 地图名从可见变成不可见的帧数
  
  # 完全可见时的透明度设置
  OPACITY_1 = 244   # 边框
  OPACITY_2 = 144   # 背景
  OPACITY_3 = 255   # 文字
  
  # 地图名字的颜色
  TEXT_COLOR = Color.new(255, 255, 255, 255)
   
  #--------------------------------------------------------------------------
  # ● 初始化状态
  #--------------------------------------------------------------------------
  def initialize
    super(NAME_X , NAME_Y, NAME_W, NAME_H)
    # 初始化窗口透明度
    self.opacity = 0
    self.back_opacity = 0
    self.contents_opacity = 0
    self.contents = Bitmap.new(width - 32, height - 32)
    # 剩余帧数初始化
    @show_time = 0
  end
  #--------------------------------------------------------------------------
  # ● 输出文字
  #--------------------------------------------------------------------------
  def setname   
    unless $game_switches[SWITCH]==true
      # 获取地图ID
      newid = $game_map.map_id
      time = SHOW_TIME_1 + SHOW_TIME_2 + SHOW_TIME_3  
      # 如果现在的地图的ID不是刚才显示的地图ID则开始显示
      if newid != @id
        @id = newid
        @show_time = SHOW_TIME_0 + SHOW_TIME_1 + SHOW_TIME_2 + SHOW_TIME_3
      # 剩余帧数为0是时,全部窗口透明
      elsif @show_time < 1
        self.opacity = 0
        self.back_opacity = 0
        self.contents_opacity = 0
        return
      end      
      self.contents.clear
      self.contents.font.color = TEXT_COLOR
      # 描绘地图名
      #self.contents.draw_text(4, 0 , width - 40, 32, $data_mapinfos[@id].name, 1)
      # 根本帧数设定窗口透明度
      if @show_time > (SHOW_TIME_2 + SHOW_TIME_3)
        self.opacity = @show_time < time ? (((OPACITY_1 / SHOW_TIME_1) * (time - @show_time)).to_i) : 0
        self.back_opacity = @show_time < time ? (((OPACITY_2 / SHOW_TIME_1 )* (time - @show_time)).to_i) : 0
        self.contents_opacity = @show_time < time ? (((OPACITY_3 / SHOW_TIME_1) * (time - @show_time)).to_i) : 0
      else
        self.opacity = @show_time < (SHOW_TIME_3 / 16 * 14) ? ((OPACITY_1 / SHOW_TIME_3) * @show_time).to_i : OPACITY_1
        self.back_opacity = @show_time < (SHOW_TIME_3 / 16 * 9) ? ((OPACITY_2 / SHOW_TIME_3) * @show_time).to_i : OPACITY_2
        self.contents_opacity = @show_time < SHOW_TIME_3 ? ((OPACITY_3 / SHOW_TIME_3)* @show_time).to_i : OPACITY_3
      end      
      @show_time -= 1
    end
  end
end

#==============================================================================
# ■ Scene_Map
#------------------------------------------------------------------------------
#  处理地图画面的类。(追加定义)
#==============================================================================

class Scene_Map
  alias smn_main main
  def main
    @mapname = Window_MapName.new
    smn_main
    @mapname.dispose
  end
  
  alias smn_update update
  def update
    @mapname.setname
    smn_update
  end
end

#==============================================================================
# ■ Scene_Title
#------------------------------------------------------------------------------
#  处理标题画面的类。(追加定义)
#==============================================================================

class Scene_Title
  alias smn_main main
  def main
    # 读取地图信息文件
    $data_mapinfos = load_data("Data/MapInfos.rxdata")
    smn_main
  end
end

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

使用道具 举报

梦石
0
星屑
6963
在线时间
1557 小时
注册时间
2011-6-14
回帖
425
 楼主| 发表于 2014-9-15 22:56:58 | 显示全部楼层
@573932914  你有说了什么吗
回复

使用道具 举报

梦石
0
星屑
50
在线时间
206 小时
注册时间
2014-2-8
回帖
378
发表于 2014-9-16 13:04:08 | 显示全部楼层
[pre lang="ruby" line="1"]
#==============================================================================
# 本脚本来自www.66RPG.com,使用和转载请保留此信息
#==============================================================================


#==============================================================================
# ■ 地图名显示脚本
#      by Yuee
#------------------------------------------------------------------------------
# 在Main的上方插入一个页,将本脚本复制到那页中即可
#==============================================================================

#==============================================================================
# ■ Window_MapName
#------------------------------------------------------------------------------
#    显示地图名字的窗口。
#==============================================================================

class Window_MapName < Window_Base
   #--------------------------------------------------------------------------
   # ● 类常量定义
   #--------------------------------------------------------------------------

   # 暂时屏蔽用的开关
   SWITCH = 20

   # 窗口位置设定
   NAME_X = 209       # 矩形左上顶点X坐标
   NAME_Y = 24        # 矩形左上顶点Y坐标
   NAME_W = 220       # 矩形宽
   NAME_H = 60        # 矩形高

   # 显示时间设置
   SHOW_TIME_0 = 10   # 地图名出现前等待的帧数
   SHOW_TIME_1 = 10   # 地图名从不可见变成可见的帧数
   SHOW_TIME_2 = 34   # 地图名完全可见的帧数
   SHOW_TIME_3 = 16   # 地图名从可见变成不可见的帧数

   # 完全可见时的透明度设置
   OPACITY_1 = 244    # 边框
   OPACITY_2 = 255    #144    # 背景
   OPACITY_3 = 255    # 文字

   # 地图名字的颜色
   TEXT_COLOR = Color.new(255, 255, 255, 255)
   TEXT_COLOR2 = Color.new(255, 255, 255, 255)
   TEXT_COLOR3 = Color.new(255, 255, 255, 255)
   #--------------------------------------------------------------------------
   # ● 初始化状态
   #--------------------------------------------------------------------------
   def initialize
     super(NAME_X , NAME_Y, NAME_W, NAME_H)
     # 初始化窗口透明度
     self.opacity = 0
     self.back_opacity = 0
     self.contents_opacity = 0
     self.contents = Bitmap.new(width - 32, height - 32)
     # 剩余帧数初始化
     @show_time = 0


end
   #--------------------------------------------------------------------------
   # ● 输出文字
   #--------------------------------------------------------------------------
   def setname
    # if $data_system.start_map_id==10
    #   $game_player.transparent=true
    #   $begin_....=true
   # else
     # $begin_....=false
    #    end
     unless $game_switches[SWITCH]==true
       # 获取地图ID
       newid = $game_map.map_id
       time = SHOW_TIME_1 + SHOW_TIME_2 + SHOW_TIME_3 + 40
       # 如果现在的地图的ID不是刚才显示的地图ID则开始显示
       if newid != @id and newid != 10 and newid != 34
         @id = newid
         @show_time = SHOW_TIME_0 + SHOW_TIME_1 + SHOW_TIME_2 + SHOW_TIME_3+40
       # 剩余帧数为0时,全部窗口透明
       elsif @show_time < 1
         self.opacity = 0
         self.back_opacity = 0
         self.contents_opacity = 0
         return
       end     
       self.contents.clear
       self.contents.font.color = TEXT_COLOR
       # 描绘地图名        
        self.contents.draw_text(4, 0 , width - 40, 32, $data_mapinfos[@id].name, 1)
       # 根本帧数设定窗口透明度
       if @show_time > (SHOW_TIME_2 + SHOW_TIME_3 + 40)


         self.opacity = @show_time < time ? (((OPACITY_1 / SHOW_TIME_1) * (time - @show_time)).to_i) : 0
         self.back_opacity = @show_time < time ? (((OPACITY_2 / SHOW_TIME_1 )* (time - @show_time)).to_i) : 0
         self.contents_opacity = @show_time < time ? (((OPACITY_3 / SHOW_TIME_1) * (time - @show_time)).to_i) : 0
       else
         self.opacity = @show_time < (SHOW_TIME_3 / 16 * 14) ? ((OPACITY_1 / SHOW_TIME_3) * @show_time).to_i : OPACITY_1
         self.back_opacity = @show_time < (SHOW_TIME_3 / 16 * 9) ? ((OPACITY_2 / SHOW_TIME_3) * @show_time).to_i : OPACITY_2
         self.contents_opacity = @show_time < SHOW_TIME_3 ? ((OPACITY_3 / SHOW_TIME_3)* @show_time).to_i : OPACITY_3
       end     
       @show_time -= 1
     end
     end
end

#==============================================================================
# ■ Scene_Map
#------------------------------------------------------------------------------
#    处理地图画面的类。(追加定义)
#==============================================================================

class Scene_Map
   alias smn_main main
   def main
     @mapname = Window_MapName.new
     smn_main
     @mapname.dispose
   end

   alias smn_update update
   def update
     @mapname.setname
     smn_update
   end
end

#==============================================================================
# ■ Scene_Title
#------------------------------------------------------------------------------
#    处理标题画面的类。(追加定义)
#==============================================================================

class Scene_Title
   alias smn_main main
   def main
     # 读取地图信息文件
     $data_mapinfos = load_data("Data/MapInfos.rxdata")
     smn_main
   end
end

#==============================================================================
# 本脚本来自www.66RPG.com,使用和转载请保留此信息
#==============================================================================
[/pre]试试这个?

点评

幸苦了,可惜还是跳出,不过是其他脚本的问题,可能不兼容吧  发表于 2014-9-16 15:14
昨天电脑突然蓝屏了所以没有来得及回复←←  发表于 2014-9-16 13:05
刚接触RPG的新人们裤艾来这里!在这里能够帮助你们提高自身的能力,让大家来帮助每个人实现自己的创意、构想!
也许你只是正在看RPG教程的新人,或者是正在努力学着制作自己的RPG的制作者,或者是狂热的RPG游戏喜爱者,
但都不重要!
加入我们,我们会帮助你实现梦想,或者帮助你更好的运用RPG并且创造个人的一片天地!周末我们会不定时间开放RM技术讨论活动或者RM经验交流课!
加入我们,我们愿意与你共同创造奇迹,共同进步!
QQ群号:329443038  
或者联系QQ:573932914
我们和你站在同一线!
要求只有:常能上线
我们会用十分的热情接纳你!
回复

使用道具 举报

梦石
0
星屑
50
在线时间
206 小时
注册时间
2014-2-8
回帖
378
发表于 2014-9-16 18:23:55 | 显示全部楼层
发工程让那些有耐心的人帮你改吧←←
刚接触RPG的新人们裤艾来这里!在这里能够帮助你们提高自身的能力,让大家来帮助每个人实现自己的创意、构想!
也许你只是正在看RPG教程的新人,或者是正在努力学着制作自己的RPG的制作者,或者是狂热的RPG游戏喜爱者,
但都不重要!
加入我们,我们会帮助你实现梦想,或者帮助你更好的运用RPG并且创造个人的一片天地!周末我们会不定时间开放RM技术讨论活动或者RM经验交流课!
加入我们,我们愿意与你共同创造奇迹,共同进步!
QQ群号:329443038  
或者联系QQ:573932914
我们和你站在同一线!
要求只有:常能上线
我们会用十分的热情接纳你!
回复

使用道具 举报

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

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部