Project1

标题: 请高手解决一下我想制作一个用开关可以显示金钱和游戏时 [打印本页]

作者: 枪胜贤者    时间: 2011-5-20 11:45
标题: 请高手解决一下我想制作一个用开关可以显示金钱和游戏时
本帖最后由 枪胜贤者 于 2011-5-20 19:29 编辑

我想制作一个用开关可以显示金钱和游戏时间的脚本
我自己试着做了下,不能用;请高手们帮忙解决一下
Project1.zip (204.34 KB, 下载次数: 74)
作者: Wind2010    时间: 2011-5-20 15:41
本帖最后由 Wind2010 于 2011-5-20 15:55 编辑

LZ的脚本写法还不是很会,常量要写在class里面
工程在修改
  1. #-----------------------------------------------------------------------------
  2. #开关打开地图显示金钱和游戏时间窗口
  3. #-----------------------------------------------------------------------------
  4. class Window_xy < Window_Base
  5.   XY_SWITCH = 5
  6.   # 定义初始化
  7.   def initialize
  8.     # 生成游戏时间窗口
  9.     @playtime_window = Window_PlayTime.new
  10.     @playtime_window.x = 0
  11.     @playtime_window.opacity = 0
  12.     @playtime_window.y = 322
  13.     # 生成金钱窗口
  14.     @gold_window = Window_Gold.new
  15.     @gold_window.opacity = 0
  16.     @gold_window.x = 0
  17.     @gold_window.y = 416
  18.     refresh # 生成窗口后刷新一次
  19.   end
  20.   # 定义刷新
  21.   def refresh
  22.     open = $game_switches[XY_SWITCH] # 确定窗口是否显示
  23.     # 改变是否可见
  24.     @playtime_window.visible = open
  25.     @gold_window.visible = open
  26.     # 刷新窗口内容
  27.     # 如果开关已经关闭即使刷新也不会显示
  28.     return if open == false
  29.     # draw_text比较占内存,所以每次刷新都要判断是否变化
  30.     if @gold != $game_party.gold # @gold为窗口中储存的旧金钱数量
  31.       @gold = $game_party.gold # 更新数据
  32.       @gold_window.refresh # 注意要用refresh而不是update,refresh才是刷新窗口内部(其实
  33.                     # 就是清楚窗口内容重新描绘)
  34.     end
  35.     if @playtime != Graphics.frame_count / Graphics.frame_rate # @gold为窗口中储存的旧金钱数量
  36.       @playtime = Graphics.frame_count / Graphics.frame_rate # 更新数据
  37.       @playtime_window.refresh
  38.     end        
  39.   end
  40.   # 定义消除窗口
  41.   def dispose
  42.     @playtime_window.dispose
  43.     @gold_window.dispose
  44.   end
  45. end
  46. class Scene_Map
  47.   # alias命令,防止重复alias用了unless
  48.   unless @shizi_alias
  49.     @shizi_alias = true
  50.     alias xy_66rpg_main main
  51.   end
  52.   unless @shizi_alias_2
  53.     @shizi_alias_2 = true
  54.     alias xy_66rpg_update update
  55.   end
  56.   # 插入并更新xy窗口
  57.   def main
  58.     @xy_window = Window_xy.new # 生成窗口
  59.     xy_66rpg_main
  60.     @xy_window.dispose # 释放窗口
  61.   end
  62.   def update
  63.     xy_66rpg_update
  64.     @xy_window.refresh # 更新窗口
  65.   end
  66. end
复制代码

作者: 枪胜贤者    时间: 2011-5-20 19:29
回复 Wind2010 的帖子

多谢高手指点




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1