作者killman (天下第一人)
看板GameDesign
标题Re: [程式] 制作动画的问题
时间Tue Jan 8 11:44:31 2008
※ 引述《littleshan (我要加入剑道社!)》之铭言:
: 因此(我看到的)大多游戏都没有固定 fps
不知道有没有什麽例子可以举一下
固定fps我觉得可以避免过多的画面更新
我想知道是哪一类型的游戏会选择不这样做
: 另外一个问题是
: 当你计算物体的位移时
: 不能用 1/30 秒去算
: 因为 render 要花时间
: 而且每张 frame 花的时间不一样
: 如果都用 1/30 秒去算
: 就会发生物体移动时快时慢的现象
: 若要固定 fps 为 30
: 我会先计算画出第一张 frame 的时间,假设为 t
: 然後设定 timer 在 (1/30 - t) 秒後重绘一次
: 因为 t 会变动
: 因此每次重绘完 都要重新设定一次 timer
其实好像并不会发生你说的这种状况
因为其实timer并不是跑完函式才继续计算中间的间格时间的
也就是并非在(1/30 - t)秒後重绘一次
而是利用取得系统时间
计算间格时间
当超过或等於我们设定的值
才呼叫callback function
简单的说 fps 30的情形
就会让你显现的结果是固定fps 30的样子
具体的举例
设定一段动画是球落地的动画(fps30)
而总时间是1秒(也就是30格)
那麽假设其中的第一个画面在画的时候计算量太大(timer跑第一次)
拖到一秒才画完
所以当timer跑第二次的时候
会发现从开始动画已经过了1秒 (不是从画完以後计算)
因此第二格画出来的会是球已经落地的样子
--
http://www.wretch.cc/blog/killman
http://www.wretch.cc/album/killman 作品集
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.111.5.43
1F:→ doomleika:我知道quake 3还有UT系都没有锁 01/08 11:46
2F:→ doomleika:不过quake後来因为这样搞出了strafe jump,後来的系统 01/08 11:47
3F:→ doomleika:预设都锁起来了 01/08 11:47
4F:→ killman:作fps engine的应该都很喜欢让fps飙高没错 01/08 11:54
5F:→ killman:学术上的程式也会故意不锁fps 来验证最高速 01/08 11:56
6F:→ killman:不过fps的游戏也并不代表全部就是了 01/08 11:59
7F:→ killman:而且如果是说动画部分 未必更新频率跟显示的部分是相同的 01/08 12:00