Project1

标题: 自己写的窗口一刷新就卡住 [打印本页]

作者: 这乱入的Jack    时间: 2012-4-30 21:54
标题: 自己写的窗口一刷新就卡住
本帖最后由 这乱入的Jack 于 2012-5-1 08:16 编辑
  1. class Sz_pic
  2.   def initialize
  3.     s=Array.new
  4.     for i in 1...$玩家数组.size
  5.       s[i-1]=[$玩家数组[i][1]*10+$玩家数组[i][0],100,50*(i-1)]
  6.     end        
  7.     @window=Window_Picture_Command.new(s,2)
  8.     Graphics.transition
  9.     loop do
  10.       Graphics.update
  11.       Input.update
  12.       update
  13.       if $scene != self
  14.         break
  15.       end
  16.     end
  17.     Graphics.freeze
  18.     @window.dispose
  19.   end
  20.   def update
  21.     # 刷新命令窗口
  22.     @window.update
  23.     # 按下 C 键的情况下
  24.     if Input.trigger?(Input::C)
  25.       # 命令窗口的光标位置的分支
  26.       case @window.index
  27.       when 0  # 新游戏
  28.         command_new_game
  29.       when 1  # 继续
  30.         command_continue
  31.       when 2  # 退出
  32.         command_shutdown
  33.       end
  34.     end
  35.   end
  36.   
  37. end
复制代码
以上是整个脚本,功能是用图片显示选项,下面那些新游戏什么的是复制Tittle的,还没改。
整个脚本一运行图片选项倒是有出现,但是马上卡住,正能按空格键才勉强刷新一下。
如果把循环刷新的那一段去掉,就不会卡住了,但是这样就只把那几个图片显示在那里,没用。


工程:http://www.vdisk.cn/down/index/10092357

脚本写得有点乱,不好意思
dsu_plus_rewardpost_czw
作者: hys111111    时间: 2012-4-30 22:13
本帖最后由 hys111111 于 2012-5-1 07:45 编辑

我终于看出来了。
这里要变成def main。
Scene是有特定这样子的。
另外,@window.index也没有定一个值,所以会卡住
  1. class Sz_pic
  2.   def main
  3.     s=Array.new
  4.     for i in 1...$玩家数组.size
  5.       s[i-1]=[$玩家数组[i][1]*10+$玩家数组[i][0],100,50*(i-1)]
  6.     end        
  7.     @window=Window_Picture_Command.new(s,2)
  8.     @window.index = 0
  9.     @window.active = true
  10.     Graphics.transition
  11.     loop do
  12.       Graphics.update
  13.       Input.update
  14.       update
  15.       if $scene != self
  16.         break
  17.       end
  18.     end
  19.     Graphics.freeze
  20.     @window.dispose
  21.   end
  22.   def update
  23.     # 刷新命令窗口
  24.     @window.update
  25.     # 按下 C 键的情况下
  26.     if Input.trigger?(Input::C)
  27.       # 命令窗口的光标位置的分支
  28.       case @window.index
  29.       when 0  # 新游戏
  30.         command_new_game
  31.       when 1  # 继续
  32.         command_continue
  33.       when 2  # 退出
  34.         command_shutdown
  35.       end
  36.     end
  37.     return
  38.   end
  39.   
  40. end
复制代码
再次修复。
触发那个窗口试试
作者: Wind2010    时间: 2012-4-30 23:18
本帖最后由 Wind2010 于 2012-4-30 23:20 编辑

@enemy_window是在哪里来的- -
作者: 这乱入的Jack    时间: 2012-5-1 00:21
  1. class Sz_pic
  2.   def main
  3.     s=Array.new
  4.     for i in 1...$玩家数组.size
  5.       s[i-1]=[$玩家数组[i][1]*10+$玩家数组[i][0],100,50*(i-1)]
  6.     end        
  7.     @window=Window_Picture_Command.new(s,2)
  8.   end
  9.   
  10. end
复制代码
这个是脚本的基本功能,是图片选项
剩下的应该是刷新窗口了吧,要怎么刷新
作者: hys111111    时间: 2012-5-1 07:43
本帖最后由 hys111111 于 2012-5-1 07:45 编辑
这乱入的Jack 发表于 2012-5-1 00:21
这个是脚本的基本功能,是图片选项
剩下的应该是刷新窗口了吧,要怎么刷新 ...


看看在def update 那个end前面加个return。
这次应该没问题了。




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