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

Project1

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

哪位高手讲一下Scene_Battle中的update怎样运行的

 关闭 [复制链接]

Lv1.梦旅人

辉瑞中国首席研究员<

梦石
0
星屑
50
在线时间
142 小时
注册时间
2008-1-18
帖子
2129
跳转到指定楼层
1
发表于 2008-2-10 01:39:32 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
哪位高手讲一下Scene_Battle中的update怎样运行的


帖子已被修改,详情请看版规



如果问题未解决,请继续提问
如果问题已解决,请结贴
若到末贴发贴时间后一周仍未结贴
管理员会自动为你过期帖子、结贴或强行认可答案(好人卡-1)


此贴于 2008-2-15 20:54:39 被版主凌冰提醒,请楼主看到后对本贴做出回应。
此贴于 2008-2-15 21:23:08 被版主凌冰提醒,请楼主看到后对本贴做出回应。
版务信息:本贴由楼主自主结贴~
来6r就是等某位仁兄的巨坑

褴褛着身行无端,囊中羞涩空心酸。
平生几无得意事,倒塔泡面宅寝室。
惟羡隔壁高帅富,雨露春风月夜声。
青丝无处觅其踪,只有硬盘苍井空。
莫云男儿空悲愁,鸿鹄岂不天际游。
坐断天下执鹿首,千百金帛万兜鍪。
夜深忽梦某年月,再见女神欲语迟。
吊丝终有逆袭日,木耳再无回粉时。

Lv1.梦旅人

梦石
0
星屑
50
在线时间
1 小时
注册时间
2005-10-22
帖子
519
2
发表于 2008-2-10 11:35:11 | 只看该作者
不太清楚楼主需要何种解释……

这里粗略说一下……

以XP的为例。

Scene_Battle类的实例从Main方法开始执行。Main方法内,有一段

loop do
      # 刷新游戏画面
      Graphics.update
      # 刷新输入信息
      Input.update
      # 刷新画面
      update
      # 如果画面切换的话就中断循环
      if $scene != self
        break
      end
    end


上面代码中的update就是调用Scene_Battle的Update方法。

这样子Update方法按照一定的执行周期反复执行。

update方法内,第一部分是含有大量if的条件分歧。用$开头的各种全局变量来判断某些场合的例外处理,比如
# 计时器为 0 的情况下
    if $game_system.timer_working and $game_system.timer == 0
      # 中断战斗
      $game_temp.battle_abort = true
    end

再就是负责战斗场景窗口刷新的部分

@status_window.update
@message_window.update
等等
(负责调用所有该场景窗口的update方法)。

你可以把update方法想象成每帧调用一次,这样子,该场景内所有的窗口实例的update方法都会被调用,从而实现窗口的即时刷新。

还有一部分,就是利用@phase 这个标志量,对他进行case分歧,来选择调用的合适的阶段update方法,从而达到战斗场景规律性的前进。

# 回合分支
    case @phase
    when 1  # 自由战斗回合
      update_phase1
    when 2  # 同伴命令回合
      update_phase2
    when 3  # 角色命令回合
      update_phase3
    when 4  # 主回合
      update_phase4
    when 5  # 战斗结束回合
      update_phase5
    end

(选择人物命令,选择敌人,刷新动画,====,按照@phase的逐渐累加依次进行调用)

说的也不是很清楚……咳……
系统信息:本贴由楼主认可为正确答案,66RPG感谢您的热情解答~
3rd chapter ==> 55% 完工日期===>202X年?

跳不跳呢跳不跳呢跳不跳呢……下个项目死磕HQ……
回复 支持 反对

使用道具 举报

Lv1.梦旅人

风之塞尔达

梦石
0
星屑
50
在线时间
57 小时
注册时间
2005-10-22
帖子
2492

贵宾

3
发表于 2008-2-10 22:59:59 | 只看该作者
刷新事件       如果需要
刷新计时器
刷新图形
处理场景过度   如果需要
判断场景切换
等待行动中角色
执行,推进战斗过程(战斗,命令,结束等等根据进度执行其一)
在程序里延续塞尔达的传说, 在画板上勾勒塞尔达的轮廓!!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-12-3 01:45

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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