2015-09-24 21 views
3

是否有tvOS API檢測橫向方位和/或允許使用Apple TV控制器進行橫向控制器的觸摸手勢輸入? (例如,無論控制器是縱向還是橫向轉動,該應用都會得到關於地板/重力的輕掃事件)。如何在景觀中使用Apple TV Remote?

回答

1

我玩過AppleTV和遙控器。遙控器上的手勢識別是可能的。我已經從我的Blog article中複製了關於此的示例代碼。

爲了檢測遠程this answer from the Apple Developer forum might be helpful.

import SpriteKit 

class GameScene: SKScene { 

let sprite = SKSpriteNode(imageNamed:"Spaceship") 

override func didMoveToView(view: SKView) { 

    /* Setup your scene here */ 

    // Add Sprite 
    sprite.xScale = 0.5 
    sprite.yScale = 0.5 
    sprite.position = CGPoint(x:CGRectGetMidX(self.frame), y:CGRectGetMidY(self.frame)) 
    self.addChild(sprite) 

    // Register Swipe Events 
    let swipeRight:UISwipeGestureRecognizer = UISwipeGestureRecognizer(target: self, action: Selector("swipedRight:")) 
    swipeRight.direction = .Right 
    view.addGestureRecognizer(swipeRight) 


    let swipeLeft:UISwipeGestureRecognizer = UISwipeGestureRecognizer(target: self, action: Selector("swipedLeft:")) 
    swipeLeft.direction = .Left 
    view.addGestureRecognizer(swipeLeft) 


    let swipeUp:UISwipeGestureRecognizer = UISwipeGestureRecognizer(target: self, action: Selector("swipedUp:")) 
    swipeUp.direction = .Up 
    view.addGestureRecognizer(swipeUp) 


    let swipeDown:UISwipeGestureRecognizer = UISwipeGestureRecognizer(target: self, action: Selector("swipedDown:")) 
    swipeDown.direction = .Down 
    view.addGestureRecognizer(swipeDown) 

} 

// Handle Swipe Events 
func swipedRight(sender:UISwipeGestureRecognizer){ 
    sprite.position = CGPoint(x: sprite.position.x + 10, y: sprite.position.y) 
} 

func swipedLeft(sender:UISwipeGestureRecognizer){ 
    sprite.position = CGPoint(x: sprite.position.x - 10, y: sprite.position.y) 
} 

func swipedUp(sender:UISwipeGestureRecognizer){ 
    sprite.position = CGPoint(x: sprite.position.x, y: sprite.position.y+10) 
} 

func swipedDown(sender:UISwipeGestureRecognizer){ 
    sprite.position = CGPoint(x: sprite.position.x, y: sprite.position.y-10) 
} 


override func update(currentTime: CFTimeInterval) { 
    /* Called before each frame is rendered */ 
} 

}

的取向