虽然2D游戏开发更像素为中心,但3D游戏开发并不关心这类东西的像素,而是单位.单位大小完全是任意的.
通常,您有一个速度向量,其大小等于您的对象每秒的米(或英尺或??).这样,通过添加此速度*自上一帧(16.6666毫秒)以来经过的时间,每帧更新位置.来自重力的加速度以相同的方式添加到速度矢量:
Vector3 gravity = Vector3.Down * 9.81f;
//in the update loop
float elapsed = (float)gameTime.ElapsedGameTime.TotalSeconds;//0.01666667 (or 16.67 ms) @ 60FPS
velocity += gravity * elapsed;
position += velocity * elapsed;
Run Code Online (Sandbox Code Playgroud)
在这个例子中,我任意确定1 xna单位== 1米.
| 归档时间: |
|
| 查看次数: |
2691 次 |
| 最近记录: |