使用设备倾斜swift移动SKPhysicsBody

时间:2015-07-29 01:00:00

标签: ios swift sprite-kit

我在屏幕上有一个图像,它是一个附有SKPhysicsBody的SKSpriteNode。我试图通过倾斜设备在屏幕上移动它。我让它沿着x轴移动,但我似乎无法让它沿着y轴移动。

我使用本教程的部分内容来达到我的目的。我使用了关于用户发货的部分来让我的图像沿x轴移动。

http://www.raywenderlich.com/76740/make-game-like-space-invaders-sprite-kit-and-swift-tutorial-part-1

func processUserMotionForUpdate(currentTime: CFTimeInterval) {
    let ship = childNodeWithName(kShipName)

    if let data = motionManager.accelerometerData {
        if (fabs(data.acceleration.x) > 0.2) {
            ship!.physicsBody!.applyForce(CGVectorMake(40.0 * CGFloat(data.acceleration.x), 0))
        }
        if (fabs(data.acceleration.y) > 0.2) {
            ship!.physicsBody!.applyForce(CGVectorMake(40.0 * CGFloat(data.acceleration.y), 0))
        }

    }
}

如果带有y的语句是我为了尝试上下移动图像而添加的部分,但它不起作用。

这里的逻辑有错吗?或者我只是以错误的方式解决这个问题?

1 个答案:

答案 0 :(得分:1)

创建矢量以对y轴应用力时,将y参数传递给x轴。 要解决此问题,您必须在第二个applyForce语句中交换参数:

if (fabs(data.acceleration.y) > 0.2) {
    ship!.physicsBody!.applyForce(CGVectorMake(0, 40.0 * CGFloat(data.acceleration.y)))
}