3D 游戏开发:力与渲染循环的应用
在开发 3D 游戏时,要让物体动起来,就需要对其施加力。就像在现实生活中,要移动桌上的勺子,就得给它施加某种物理力。Scene Kit 物理引擎在模拟现实物理方面表现出色,所以在游戏里,要移动物理体,也得给它施加力。
1. 力的施加与作用
- 力的基本概念 :力是一个具有 x、y 和 z 分量的向量,有大小和方向。例如,向量 (x:0, y:10, z:0) 表示向上的垂直力;向量 (x:10, y:0, z:0) 表示水平向右的力;若 x 分量为负,则表示向左的力。当多个向量组合时,如 (x:10, y:10, z:0),物体将沿对角线移动。
- 施加力的方法 :使用
applyForce(_: atPosition: impluse:)方法,需要传入SCNVector3类型的力和施加力的位置,以及是否作为冲量施加。冲量只对物理体施加一次力,如踢球;非冲量的力在物理模拟的每一步都会施加。 - 代码实现 :在
spawnShape()函数中创建物理体后添加以下代码:
// 1
let randomX = Float.random(min: -2, max: 2)
let randomY = Float.random(min: 10, max: 18)
// 2
let force = SCNVector3(
超级会员免费看
订阅专栏 解锁全文
1986

被折叠的 条评论
为什么被折叠?



