2016-07-26 53 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)!) 

這樣你就不會影響x位置

+0

船仍下落的屏幕,它只是不加速度計的迴應y軸。 –

+0

我更新了答案,把它弄錯了 – Luke