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毫秒