查看单个帖子
旧 2009-05-05, 22:44   #4
instemast
初级会员
 
注册日期: 2009-05-05
年龄: 36
帖子: 1
声望力: 0
instemast 正向着好的方向发展
默认 回复: [求助]什么叫连续系统仿真和离散系统仿真

> 连续型仿真:
比如某个玩家受到持续性的火焰伤害,那么他的HP可以这样计算:
HP(t) = HP(0) + 积分[0 t]damage(t)*dt
由于计算机本身是离散型的,所以这种火焰伤害无法直接计算,也不能精确计算,
通常采用下面的方法:
HP(t+dt) = HP(t) - damage(t)*dt

> 离散系统仿真:
比如某个玩家不断受到物理攻击伤害,那么它生命值为:
HP(new) = HP(old) - damage
这里不方便采用HP(t)的函数进行刻画。因为这里是按照“被攻击次数”计算生命的,
不管什么时间,只要被人砍到一次,那么就会瞬间失去那么多生命值。
计算机本身是离散型的,所以很容易用计算机做上面的这种计算。
但是,对于复杂的离散系统,上面的计算式子会变成地狱!(像魔方一样麻烦!)
(见http://bbs.gameres.com/showthread.asp?postid=709363)
于是,很多时候,我们用连续系统仿真的方法,近似实现离散系统仿真:
HP(t+dt) = HP(t) - damage(t)
缺点是:不严密。我们经常会发现不少软件中出"Error",很多就是这个原因。
instemast 当前离线   回复时引用此帖