Project1

标题: 按ESC或ENTER清除窗口的问题 [打印本页]

作者: qq634488405    时间: 2012-11-15 01:37
标题: 按ESC或ENTER清除窗口的问题
本帖最后由 qq634488405 于 2012-11-15 15:02 编辑
  1. def main
  2.     @screen = Sprite.new
  3.     look = Window_Base.new((544-492)/2,(416-288)/2,492,288)
  4.     look.contents = Bitmap.new(look.width - 32, look.height - 32)
  5.     Graphics.transition
  6.     loop do
  7.       Graphics.update
  8.       Input.update
  9.       look.contents.draw_text(0,0,460,32,@name+"看起来约"+@age+"0多岁")
  10.       update_command
  11.       if $scene != self
  12.         break
  13.       end
  14.     end
  15.     Graphics.freeze
  16.    Input.update
  17.     look.dispose
  18.     @screen.dispose
  19.   end
  20.   def update_command
  21.     # 按下 B 键的情况下
  22.     if Input.trigger?(:B)
  23.        look.dispose
  24.        @screen.dispose
  25.        $scene = Scene_Map.new
  26.     end
  27.     # 按下 C 键的情况下
  28.     if Input.trigger?(:C)
  29.        look.dispose
  30.        @screen.dispose
  31.        $scene = Scene_Map.new
  32.     end
  33.   end
  34. end
复制代码
脚本是那样的,运行后创建了窗口,除了按ESC几次弹出菜单才会清除外,按ENTER没反应。求助如何修改才能按下ESC或ENTER后立刻清除创建的窗口,先谢谢各位
作者: 沙漠点灰    时间: 2012-11-15 12:55
本帖最后由 沙漠点灰 于 2012-11-15 12:57 编辑



没怎么用过VA,但是lz这个明显是xp的脚本习惯..应要改的话,如下:
还有,look应该打个@!表示召唤(大雾)
  1. class Scene_Test
  2. def main
  3.   @name = "A";@age= "1"
  4.     @screen = Sprite.new
  5.     @look = Window_Base.new((544-492)/2,(416-288)/2,492,288)
  6.     @look.contents = Bitmap.new(@look.width - 32, @look.height - 32)
  7.     Graphics.transition
  8.     @look.contents.draw_text(0,0,460,32,@name+"看起来约"+@age+"0多岁")
  9.     loop do
  10.       Graphics.update
  11.       Input.update
  12.       update_command
  13.       break if @exit
  14.     end
  15.     Graphics.freeze
  16.     Input.update
  17.     @look.dispose
  18.     @screen.dispose
  19.   end
  20.   def update_command
  21.     # 按下 B 键的情况下
  22.     if Input.trigger?(:B)
  23.        @look
  24.        @look.dispose
  25.        @screen.dispose
  26.        SceneManager.call(Scene_Map)
  27.        @exit = true
  28.     end
  29.     # 按下 C 键的情况下
  30.     if Input.trigger?(:C)
  31.        @look.dispose
  32.        @screen.dispose
  33.        SceneManager.call(Scene_Map)
  34.        @exit = true
  35.     end
  36.   end
  37. end
复制代码
事件调用:
SceneManager.call(Scene_Test)

对了
@look.contents.draw_text(0,0,460,32,@name+"看起来约"+@age+"0多岁")

应写在loop外面
作者: qq634488405    时间: 2012-11-15 15:01
OK了,谢谢,之前学习的时候看的RMXP的帮助和一些别人写的脚本,所以风格有时候会偏向RMXP




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