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

Project1

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

[已经解决] 关于显示地图名的问题

 关闭 [复制链接]

Lv3.寻梦者

梦石
3
星屑
50
在线时间
762 小时
注册时间
2010-8-17
帖子
681
跳转到指定楼层
1
发表于 2011-4-24 10:55:59 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

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

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

x
本帖最后由 嚴子 于 2011-4-24 16:29 编辑

用了显示地图名脚本后,在进入地图、战斗结束后、从菜单回到地图后都会显示一次地图名。求教如何让该脚本只在进入地图时显示一次以及让地图名显示在中间。
  1. #==============================================================================
  2. # ■ Window_MapName
  3. #------------------------------------------------------------------------------
  4. #  显示地图名字的窗口。
  5. #==============================================================================
  6. class Window_MapName < Window_Base
  7. #--------------------------------------------------------------------------
  8. # ● 类常量定义
  9. #--------------------------------------------------------------------------
  10. # 暂时屏蔽用的开关
  11. SWITCH = 35
  12.   
  13. # 窗口位置设定
  14. NAME_X = 380      # 矩形左上顶点X坐标
  15. NAME_Y = 20       # 矩形左上顶点Y坐标
  16. NAME_W = 220      # 矩形宽
  17. NAME_H = 60       # 矩形高
  18.   
  19. # 显示时间设置
  20. SHOW_TIME_0 = 10 # 地图名出现前等待的帧数
  21. SHOW_TIME_1 = 10 # 地图名从不可见变成可见的帧数
  22. SHOW_TIME_2 = 34 # 地图名完全可见的帧数
  23. SHOW_TIME_3 = 16 # 地图名从可见变成不可见的帧数
  24.   
  25. # 完全可见时的透明度设置
  26. OPACITY_1 = 244   # 边框
  27. OPACITY_2 = 144   # 背景
  28. OPACITY_3 = 255   # 文字
  29.   
  30. # 地图名字的颜色
  31. TEXT_COLOR = Color.new(255, 255, 255, 255)
  32.   
  33. #--------------------------------------------------------------------------
  34. # ● 初始化状态
  35. #--------------------------------------------------------------------------
  36. def initialize
  37.     super(NAME_X , NAME_Y, NAME_W, NAME_H)
  38.     # 初始化窗口透明度
  39.     self.opacity = 0
  40.     self.back_opacity = 0
  41.     self.contents_opacity = 0
  42.     self.contents = Bitmap.new(width - 32, height - 32)
  43.     # 剩余帧数初始化
  44.     @show_time = 0
  45. end
  46. #--------------------------------------------------------------------------
  47. # ● 输出文字
  48. #--------------------------------------------------------------------------
  49. def setname   
  50.     unless $game_switches[SWITCH]==true
  51.       # 获取地图ID
  52.       newid = $game_map.map_id
  53.       time = SHOW_TIME_1 + SHOW_TIME_2 + SHOW_TIME_3  
  54.       # 如果现在的地图的ID不是刚才显示的地图ID则开始显示
  55.       if newid != @id
  56.         @id = newid
  57.         @show_time = SHOW_TIME_0 + SHOW_TIME_1 + SHOW_TIME_2 + SHOW_TIME_3
  58.       # 剩余帧数为0是时,全部窗口透明
  59.       elsif @show_time < 1
  60.         self.opacity = 0
  61.         self.back_opacity = 0
  62.         self.contents_opacity = 0
  63.         return
  64.       end      
  65.       self.contents.clear
  66.       self.contents.font.color = TEXT_COLOR
  67.       # 描绘地图名
  68.       self.contents.draw_text(4, 0 , width - 40, 32, $data_mapinfos[@id].name, 1)
  69.       # 根本帧数设定窗口透明度
  70.       if @show_time > (SHOW_TIME_2 + SHOW_TIME_3)
  71.         self.opacity = @show_time < time ? (((OPACITY_1 / SHOW_TIME_1) * (time - @show_time)).to_i) : 0
  72.         self.back_opacity = @show_time < time ? (((OPACITY_2 / SHOW_TIME_1 )* (time - @show_time)).to_i) : 0
  73.         self.contents_opacity = @show_time < time ? (((OPACITY_3 / SHOW_TIME_1) * (time - @show_time)).to_i) : 0
  74.       else
  75.         self.opacity = @show_time < (SHOW_TIME_3 / 16 * 14) ? ((OPACITY_1 / SHOW_TIME_3) * @show_time).to_i : OPACITY_1
  76.         self.back_opacity = @show_time < (SHOW_TIME_3 / 16 * 9) ? ((OPACITY_2 / SHOW_TIME_3) * @show_time).to_i : OPACITY_2
  77.         self.contents_opacity = @show_time < SHOW_TIME_3 ? ((OPACITY_3 / SHOW_TIME_3)* @show_time).to_i : OPACITY_3
  78.       end      
  79.       @show_time -= 1
  80.     end
  81. end
  82. end
  83. #==============================================================================
  84. # ■ Scene_Map
  85. #------------------------------------------------------------------------------
  86. #  处理地图画面的类。(追加定义)
  87. #==============================================================================
  88. class Scene_Map
  89. alias smn_main main
  90. def main
  91.     @mapname = Window_MapName.new
  92.     smn_main
  93.     @mapname.dispose
  94. end
  95.   
  96. alias smn_update update
  97. def update
  98.     @mapname.setname
  99.     smn_update
  100. end
  101. end
  102. #==============================================================================
  103. # ■ Scene_Title
  104. #------------------------------------------------------------------------------
  105. #  处理标题画面的类。(追加定义)
  106. #==============================================================================
  107. class Scene_Title
  108. alias smn_main main
  109. def main
  110.     # 读取地图信息文件
  111.     $data_mapinfos = load_data("Data/MapInfos.rxdata")
  112.     smn_main
  113. end
  114. end
复制代码

点评

请用提问功能发帖  发表于 2011-4-24 11:18
无脚本无真相  发表于 2011-4-24 10:59

Lv2.观梦者

虚構歪曲

梦石
0
星屑
309
在线时间
1194 小时
注册时间
2010-12-18
帖子
3928

贵宾

2
发表于 2011-4-24 11:03:44 | 只看该作者
为initialize添加一个新的参数来判别是否显示地图名吧……伸手求脚本……
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
795
在线时间
1667 小时
注册时间
2009-7-25
帖子
532

开拓者

3
发表于 2011-4-24 12:48:18 | 只看该作者
本帖最后由 烁灵 于 2011-4-24 13:13 编辑

回复 嚴子 的帖子

咱方法有错喵> <
编辑...
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
192
在线时间
166 小时
注册时间
2009-5-2
帖子
300

开拓者

4
发表于 2011-4-24 12:54:41 | 只看该作者
这个恐怕不能实现,这个脚本是加载地图的时候运行的
同一片蓝天下,你可曾记起那几年
回复 支持 反对

使用道具 举报

Lv3.寻梦者

酱油的

梦石
0
星屑
975
在线时间
2161 小时
注册时间
2007-12-22
帖子
3271

贵宾

5
发表于 2011-4-24 13:00:30 | 只看该作者
把事件中的場所移動方法截一下就行了
不做頭像做簽名,看我囧冏有神(多謝山人有情提供 )
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
795
在线时间
1667 小时
注册时间
2009-7-25
帖子
532

开拓者

6
发表于 2011-4-24 13:02:39 | 只看该作者
本帖最后由 烁灵 于 2011-4-24 13:03 编辑

回复 个快快 的帖子

编辑。。我错了T_T
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
3
星屑
50
在线时间
762 小时
注册时间
2010-8-17
帖子
681
7
 楼主| 发表于 2011-4-24 13:17:41 | 只看该作者
光说不练假把式。诸位热心前辈,小弟对脚本一窍不通,请诸位前辈直接帮我该脚本。
回复 支持 反对

使用道具 举报

Lv1.梦旅人

虱子

梦石
0
星屑
121
在线时间
1782 小时
注册时间
2010-6-19
帖子
3597
8
发表于 2011-4-24 13:30:15 | 只看该作者
14——17行:
  1. NAME_X = 210      # 矩形左上顶点X坐标
  2. NAME_Y = 210       # 矩形左上顶点Y坐标
  3. NAME_W = 220      # 矩形宽
  4. NAME_H = 60       # 矩形高
复制代码
55——56行改成:
  1.       if newid != $虱子_地图ID显示
  2.         $虱子_地图ID显示 = newid
复制代码

http://rpg.blue/thread-175056-1-2.html
PVZ型塔防物一个
http://rpg.blue/thread-155199-1-2.html
RMXP技术讨论区手动认可帖,得到答案请认可
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
3
星屑
50
在线时间
762 小时
注册时间
2010-8-17
帖子
681
9
 楼主| 发表于 2011-4-24 13:50:54 | 只看该作者
回复 Wind2010 的帖子

显示错误
回复 支持 反对

使用道具 举报

Lv1.梦旅人

虱子

梦石
0
星屑
121
在线时间
1782 小时
注册时间
2010-6-19
帖子
3597
10
发表于 2011-4-24 14:03:39 | 只看该作者
回复 嚴子 的帖子

这样试试
  1. #==============================================================================
  2. # ■ Window_MapName
  3. #------------------------------------------------------------------------------
  4. #  显示地图名字的窗口。
  5. #==============================================================================
  6. class Window_MapName < Window_Base
  7. #--------------------------------------------------------------------------
  8. # ● 类常量定义
  9. #--------------------------------------------------------------------------
  10. # 暂时屏蔽用的开关
  11. SWITCH = 35
  12.   
  13. # 窗口位置设定
  14. NAME_X = 210      # 矩形左上顶点X坐标
  15. NAME_Y = 210       # 矩形左上顶点Y坐标
  16. NAME_W = 220      # 矩形宽
  17. NAME_H = 60       # 矩形高
  18.   
  19. # 显示时间设置
  20. SHOW_TIME_0 = 10 # 地图名出现前等待的帧数
  21. SHOW_TIME_1 = 10 # 地图名从不可见变成可见的帧数
  22. SHOW_TIME_2 = 34 # 地图名完全可见的帧数
  23. SHOW_TIME_3 = 16 # 地图名从可见变成不可见的帧数
  24.   
  25. # 完全可见时的透明度设置
  26. OPACITY_1 = 244   # 边框
  27. OPACITY_2 = 144   # 背景
  28. OPACITY_3 = 255   # 文字
  29.   
  30. # 地图名字的颜色
  31. TEXT_COLOR = Color.new(255, 255, 255, 255)
  32.   
  33. #--------------------------------------------------------------------------
  34. # ● 初始化状态
  35. #--------------------------------------------------------------------------
  36. def initialize
  37.     super(NAME_X , NAME_Y, NAME_W, NAME_H)
  38.     # 初始化窗口透明度
  39.     self.opacity = 0
  40.     self.back_opacity = 0
  41.     self.contents_opacity = 0
  42.     self.contents = Bitmap.new(width - 32, height - 32)
  43.     # 剩余帧数初始化
  44.     @show_time = 0
  45. end
  46. #--------------------------------------------------------------------------
  47. # ● 输出文字
  48. #--------------------------------------------------------------------------
  49. def setname   
  50.     unless $game_switches[SWITCH]==true
  51.       # 获取地图ID
  52.       newid = $game_map.map_id
  53.       time = SHOW_TIME_1 + SHOW_TIME_2 + SHOW_TIME_3  
  54.       # 如果现在的地图的ID不是刚才显示的地图ID则开始显示
  55.       if newid != $虱子_当前地图id
  56.         $虱子_当前地图id = newid
  57.         @show_time = SHOW_TIME_0 + SHOW_TIME_1 + SHOW_TIME_2 + SHOW_TIME_3
  58.       # 剩余帧数为0是时,全部窗口透明
  59.       elsif @show_time < 1
  60.         self.opacity = 0
  61.         self.back_opacity = 0
  62.         self.contents_opacity = 0
  63.         return
  64.       end      
  65.       self.contents.clear
  66.       self.contents.font.color = TEXT_COLOR
  67.       # 描绘地图名
  68.       self.contents.draw_text(4, 0 , width - 40, 32, $data_mapinfos[$虱子_当前地图id].name, 1)
  69.       # 根本帧数设定窗口透明度
  70.       if @show_time > (SHOW_TIME_2 + SHOW_TIME_3)
  71.         self.opacity = @show_time < time ? (((OPACITY_1 / SHOW_TIME_1) * (time - @show_time)).to_i) : 0
  72.         self.back_opacity = @show_time < time ? (((OPACITY_2 / SHOW_TIME_1 )* (time - @show_time)).to_i) : 0
  73.         self.contents_opacity = @show_time < time ? (((OPACITY_3 / SHOW_TIME_1) * (time - @show_time)).to_i) : 0
  74.       else
  75.         self.opacity = @show_time < (SHOW_TIME_3 / 16 * 14) ? ((OPACITY_1 / SHOW_TIME_3) * @show_time).to_i : OPACITY_1
  76.         self.back_opacity = @show_time < (SHOW_TIME_3 / 16 * 9) ? ((OPACITY_2 / SHOW_TIME_3) * @show_time).to_i : OPACITY_2
  77.         self.contents_opacity = @show_time < SHOW_TIME_3 ? ((OPACITY_3 / SHOW_TIME_3)* @show_time).to_i : OPACITY_3
  78.       end      
  79.       @show_time -= 1
  80.     end
  81.   end
  82. end
  83. #==============================================================================
  84. # ■ Scene_Map
  85. #------------------------------------------------------------------------------
  86. #  处理地图画面的类。(追加定义)
  87. #==============================================================================
  88. class Scene_Map
  89. unless @alias_5
  90.   @alias_5 = true
  91.   alias smn_main main
  92. end
  93. def main
  94.     @mapname = Window_MapName.new
  95.     smn_main
  96.     @mapname.dispose
  97. end
  98.   
  99. alias smn_update update
  100. def update
  101.     @mapname.setname
  102.     smn_update
  103. end
  104. end
  105. #==============================================================================
  106. # ■ Scene_Title
  107. #------------------------------------------------------------------------------
  108. #  处理标题画面的类。(追加定义)
  109. #==============================================================================
  110. class Scene_Title
  111. unless @alias_4
  112.   @alias_4 = true
  113.   alias smn_main main
  114. end
  115. def main
  116.     # 读取地图信息文件
  117.     $data_mapinfos = load_data("Data/MapInfos.rxdata")
  118.     smn_main
  119. end
  120. end
复制代码

评分

参与人数 1星屑 +400 梦石 +2 收起 理由
fux2 + 400 + 2 认可答案

查看全部评分


http://rpg.blue/thread-175056-1-2.html
PVZ型塔防物一个
http://rpg.blue/thread-155199-1-2.html
RMXP技术讨论区手动认可帖,得到答案请认可
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-5-17 06:18

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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