sksprite-节点朝相反方向移动

时间:2018-07-26 17:41:21

标签: ios swift sprite-kit skspritenode core-motion

我有一艘太空船,我试图根据设备倾斜向左或向右移动。我坐着玩时,代码工作正常。当iPhone向右倾斜时,太空飞船向右移动;向左倾斜时,太空飞船向左移动。

问题-但是,当我平躺着躺着倾斜设备时,飞船朝相反的方向移动。

期望-无论我如何握住iPhone,我都希望飞船始终沿倾斜方向移动。

下面是代码。

设置Core Motion

func setupCoreMotion() {
    motionManager.accelerometerUpdateInterval = 0.2
    let queue = OperationQueue()

    motionManager.startAccelerometerUpdates(to: queue, withHandler: {
        accelerometerData, error in
        guard let accelerometerData = accelerometerData else {
            return
        }
        let acceleration = accelerometerData.acceleration
        self.xAcceleration = (CGFloat(acceleration.y) * 1.75) + (self.xAcceleration * 0.25)
    })
}

移动飞船

func moveSpaceship() {

    if spaceship.position.x < 1935.00 && spaceship.position.x > 120.0 {
        spaceship.physicsBody!.velocity.dx = xAcceleration * 3000.0

    } else { //This is to slow down spaceship towards the edges
        spaceship.physicsBody!.velocity.dx = xAcceleration * 1000.0
    }

    spaceshipPreviousPositionX.dx = spaceship.position.x
}

0 个答案:

没有答案