3

横向きを検出したり、Apple TV コントローラを横向きに保持した状態でタッチ ジェスチャ入力に使用できるようにする tvOS API はありますか? (たとえば、コントローラーが縦向きか横向きかに関係なく、アプリは床/重力に関してスワイプアップイベントを取得します)。

4

1 に答える 1

1

AppleTV とリモコンを少しいじってみた。リモコンでのジェスチャー認識が可能。これに関する私のブログ記事からサンプル コードをコピーしました。

リモコンの向きを検出するには、Apple Developer フォーラムからのこの回答が役立つ場合があります。

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 */
}

}

于 2015-09-27T18:32:00.467 に答える