【发布时间】:2015-02-19 13:41:49
【问题描述】:
我正在通过编写一个游戏来学习 SceneKit,在这个游戏中你正在飞越小行星场以躲避物体。最初,我通过移动/旋转相机来做到这一点,但我意识到在某些时候我会用完坐标空间,最好将所有对象移向相机(并在我“通过”他们)。
但我似乎无法让他们移动。我移动相机的原始代码如下所示:
[cameraNode setTransform:CATransform3DTranslate(cameraNode.transform, 0.f, 0.f, -2.f)];
我认为我可以对每个小行星节点做类似的事情:
[asteroidNode setTransform:CATransform3DTranslate(cameraNode.transform, 0.f, 0.f, 2.f)];
但他们不动。如果我添加一个基本动画:
CABasicAnimation *anim = [CABasicAnimation animationWithKeyPath:@"position.z"];
anim.byValue = @10;
anim.duration = 1.0;
[asteroidNode addAnimation:anim forKey:@"move forward"];
小行星会移动,但可以预见的是,完成后会迅速回到原来的位置。
这感觉像是一个新手错误,但我在网上找不到任何解决此问题的方法。我是不是走错路了?
谢谢, 杰夫
【问题讨论】:
标签: scenekit