2016-07-26 13 views
0

У меня есть корабль, который перемещается в зависимости от направления тяжести, который изменяется акселерометром, но я хочу, чтобы он двигался только по ширине экрана (я уже знаю как это сделать), но я не знаю, как сохранить его на фиксированной горизонтальной линии. Вот мой кодКак закодировать акселерометр на фиксированную позицию x

class GameScene: SKScene { 

var manager = CMMotionManager() 
var ship = SKSpriteNode() 



override func didMoveToView(view: SKView) { 
    /* Setup your scene here */ 


    let shipTexture = SKTexture(imageNamed: "EvadersShipVert2.png") 

    ship = SKSpriteNode(texture: shipTexture) 

    ship.position = CGPoint(x: CGRectGetMidX(self.frame), y: CGRectGetMidY(self.frame) - 250) 

    ship.size = CGSize(width: 90, height: 115) 

    shipTexture.filteringMode = SKTextureFilteringMode.Nearest 

    ship.zPosition = 2 

    ship.physicsBody = SKPhysicsBody(texture: shipTexture, size: CGSize(width: 90, height: 115)) 

    ship.physicsBody?.dynamic = true 

    self.addChild(ship) 


    manager.startAccelerometerUpdates() 
    manager.accelerometerUpdateInterval = 0.1 
    manager.startAccelerometerUpdatesToQueue(NSOperationQueue.mainQueue()) { 

     (data, error) in 

     self.physicsWorld.gravity = CGVectorMake(CGFloat((data?.acceleration.x)!), CGFloat((data?.acceleration.y)!)) 


    } 






} 

благодарит заранее!

ответ

0

Заменить

self.physicsWorld.gravity = CGVectorMake(CGFloat((data?.acceleration.x)!), CGFloat((data?.acceleration.y)!)) 

С

self.physicsWorld.gravity = CGVectorMake(0.0, CGFloat((data?.acceleration.y)!) 

Таким образом, вы не влияющие на х позицию

+0

корабль все еще падает на экран, он просто не реагирует на акселерометр на ось y. –

+0

Я обновил ответ, получил неправильный путь – Luke

 Смежные вопросы

  • Нет связанных вопросов^_^