Project1

标题: 场景类的结构问题 [打印本页]

作者: TERENCE    时间: 2008-4-15 04:18
标题: 场景类的结构问题
最近开始在学习
场景类的结构
class Scene_Xxxx

  def main
####################################
(A部分)
####################################
    Graphics.transition
    loop do
      Graphics.update
      Input.update
      update
      if $scene != self
        break
      end
    end
    Graphics.freeze
####################################
(B部分)
####################################
  end

  def update
####################################
(C部分)
####################################
  end
end

(A部分)大部分是描述 定义一些视窗或图片的地方
(B部分)大部分是描述 释放视窗或图片的地方(dispose)
(C部分)大部分是描述 显示视窗或图片(update)
大概是这样吧??

但就Scene_Menu中的def update来看有
# 命令视窗被活化的情况下: 呼叫 update_command
if @command_window.active
  update_command
  return
end
# 状态视窗被活化的情况下: 呼叫 update_status
if @status_window.active
  update_status
  return
end

何為 被活化(.active)???
作者: 沉影不器    时间: 2008-4-15 04:21
提示: 作者被禁止或删除 内容自动屏蔽
作者: TERENCE    时间: 2008-4-15 04:47
{/fd}刷新被激活???(好像没解释到活化...)

能不能说明白一点??
刷新又究竟怎么定义??
作者: 禾西    时间: 2008-4-15 05:13
因爲裏面設置两監視Input的語句
比如:
    if Input.trigger?(Input::C)
如果不根據窗口的活動建立分歧,就會引起互相之間的衝突。按下 C 鍵執行多個任務。
當然你也可以用步驟分歧,如同  Scene_Battle 一樣 case @phrase

Scene 類別的基礎在 Scene_Shop,極緻在 Scene_Battle
作者: havealook    时间: 2008-4-15 05:15
被活化就是类似于按上下左右键时可更变选项,可实行操作
作者: TERENCE    时间: 2008-4-15 05:57
那(.visible)
和(.refresh)
又是什麼???
作者: havealook    时间: 2008-4-15 06:00
.visible  是"是否可视"的意思,.visible = true为可以看到false为不可以
.refresh  是调用刷新的方法,此方法还需要自己定义
作者: 沉影    时间: 2008-4-15 06:22
提示: 作者被禁止或删除 内容自动屏蔽
作者: link006007    时间: 2008-4-15 19:42
程序运行实际就是数学和逻辑的过程

class Scene
   def main
       初始化
       更新  (这里调用到update)
       释放
   end
end

所谓的active或refresh之类的只不过是一个逻辑   用于控制脚本的运行流程





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