游戏开发论坛

 找回密码
 立即注册
搜索
查看: 1390|回复: 3

问个关于精灵运动的问题

[复制链接]

7

主题

12

帖子

12

积分

新手上路

Rank: 1

积分
12
发表于 2007-11-14 13:42:00 | 显示全部楼层 |阅读模式
   我读了一段超级玛丽的代码:
m_xv += m_xa * time;
m_x += m_xv * time;

这个m_x大概是精灵的坐标x,time呢是        CTime thistime;
        thistime.GetTime();
        float time = thistime - g_lasttime;
        g_lasttime = thistime;
        if( time > 0.05f )
                time = 0.05f;
这么得到,
我想知道设置m_x为啥用这样的方式?为啥不直接加个偏移量?好像这里头看不出物理加速度啊?

0

主题

228

帖子

285

积分

中级会员

Rank: 3Rank: 3

积分
285
发表于 2007-11-14 16:11:00 | 显示全部楼层

Re:问个关于精灵运动的问题

m_xv += m_xa * time;
m_x += m_xv * time;
根据你给出的代码推测,time是上帧到当前帧的时间间隔
m_xa是加速度,m_xv是速度,先根据加速度计算出新的速度,然后在计算当前的坐标值
基于时间来计算的结果比较准确,如果只是简单的加偏移量,那么当帧速不确定的话,那么坐标变化的速度是不确定的

31

主题

278

帖子

298

积分

中级会员

Rank: 3Rank: 3

积分
298
发表于 2007-11-16 01:04:00 | 显示全部楼层

Re:问个关于精灵运动的问题

楼上正解,基于时间可以使游戏在配置差别大的机器上保持一致

7

主题

12

帖子

12

积分

新手上路

Rank: 1

积分
12
 楼主| 发表于 2007-11-23 10:26:00 | 显示全部楼层

Re:问个关于精灵运动的问题

谢谢各位行家啊!可惜的是我一直没找到方法结贴给分!真对不起
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-6-17 23:34

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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