jjzjj

ios - SpriteKit : how to smoothly animate SKCameraNode while tracking node but only after node moves Y pixels?

coder 2024-01-15 原文

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/

有关ios - SpriteKit : how to smoothly animate SKCameraNode while tracking node but only after node moves Y pixels?的更多相关文章

随机推荐