PCgame 版 (精华区)
发信人: ghost (正在奋发中,wait), 信区: mud
标 题: 继续发关于 lpc文章
发信站: 听涛站 (Wed Jun 21 17:36:26 2000), 转信
上一篇说过, 如果把所有系统分配给所有人物是不智之举, 因为每个人物之间
的所需要等待系统的处理不一样, 因此我们并不能让每个人均分之 对一个程式来
说, 要做到请求系统拨出时间处理是十分困难的 (因为我们现在是要模拟一个OS
而不是要写一个OS) 所以对我们来说, 对每个人物设定一个参数来决定须不须要处
理则是我们便通的方法之一!!
模拟的参数设定为人物的状态, 举个实例来说, 战斗所花费的时间一定比其他
动作花的时间多, 所以游戏处理的最小单位是战斗的处理 我们把战斗的处理当成
一个轮回, 然後检查人物是否处於战斗中, 如果不是的话, 则跳过不处理 如此,
我们再每一个时间单位检查一次所有的人物, 然後我们再设定人物做一个动作所需
要的时间也记录起来, 如果上一个动作尚未完成者这里也跳过不执行 最後则是算
出一个游戏小时是由多少单位时间组成的
这样说也许不明白, 我们用实例说明:
game_loop
每个小时──┐
│ │
每个单位─┐│
│ ││
战斗单位┐││
││└┘││
│└──┘│
└────┘
我们以每个战斗为一个单位,检查所有的人物 除非有在战斗中才予以处理,
否则跳过处理下一个 然後每几个战斗单位再执行每个人物的命令, 如此, 我们就
可以对我们游戏中的人物作有效的处理而不浪费系统时间
时间单位是可以改变的, 我们可以用这些计数器来设定游戏的节奏
--
我是沧海一小龙
游到东来游到西
找寻未知的东西
只求逍遥在人间
※ 来源:.听涛站 cces.net.[FROM: 匿名天使的家]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:0.670毫秒