This question和其他人讨论如何使用 SKCameraNode 跟踪 SpriteKit 中的节点。
但是,我们的需求各不相同。
其他解决方案,例如在SKScene的update(_ currentTime: CFTimeInterval)
中更新相机位置,是行不通的,因为我们只想在节点移动了Y像素后调整相机位置在屏幕下方。
换句话说,如果节点向上移动 10 个像素,相机应该保持静止。如果节点向左或向右移动,相机应保持静止。
我们尝试随着时间而不是立即为相机的位置设置动画,但是在 update(_ currentTime: CFTimeInterval)
内针对相机运行 SKAction 无法执行任何操作。
最佳答案
我很快就做了这个。我相信这就是您要找的? (实际动画很流畅,只是我不得不压缩 GIF)
这是更新代码:
-(void)update:(CFTimeInterval)currentTime {
/* Called before each frame is rendered */
SKShapeNode *ball = (SKShapeNode*)[self childNodeWithName:@"ball"];
if (ball.position.y>100) camera.position = ball.position;
if (fabs(ball.position.x-newLoc.x)>10) {
// move x
ball.position = CGPointMake(ball.position.x+stepX, ball.position.y);
}
if (fabs(ball.position.y-newLoc.y)>10) {
// move y
ball.position = CGPointMake(ball.position.x, ball.position.y+stepY);
}
}
关于ios - SpriteKit : how to smoothly animate SKCameraNode while tracking node but only after node moves Y pixels?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40969539/