8

Siri Remote の現在の向きを確認する方法、または Siri Remote の向きの変更を登録する方法を探していますが、まだ何も見つかりません。これを行うことは可能ですか (生の重力データの解釈に頼ることなく)?

「 microGamepad 」で「allowsRotation」を使用して自動方向の変更を無効にする方法を見つけましたこれはかなりクールです!

4

1 に答える 1

1

私もAPIを見ませんでしたが、あなたが言ったように、重力データをポーリングすることができます. 変更のコールバックが必要な場合は、最後の向きを検出して現在と比較するなど、必要に応じてこれを変更できます。

    //**************************************************************
    // Update loop portion to UIViewController
    //**************************************************************
    @property (strong) CADisplayLink *updateLoopTimer;
    self.updateLoopTimer = [CADisplayLink displayLinkWithTarget:self selector:@selector(updateRefreshRate:)];
    [self.updateLoopTimer addToRunLoop:[NSRunLoop currentRunLoop] forMode:NSDefaultRunLoopMode];
    -(void)updateRefreshRate:(CADisplayLink *)displayLink
    {
        CFTimeInterval deltaTime = displayLink.duration * displayLink.frameInterval;
        [self update:(float)deltaTime];
    }

 //******************************************************
// Update loop
//******************************************************
-(void)update:(float)dt
{
#ifdef TV
    //***************************************
    // Detect button presses
    //***************************************
    //self.gameControler = [[GCController controllers] firstObject];
    if( self.gameController != nil )
    {
        GCMicroGamepad* microPad = self.gameController.microGamepad;
        if ( microPad != nil )
        {
            GCMotion *motion = self.gameController.motion;
            GCControllerDirectionPad *dpad = microPad.dpad;

            if( motion != nil )
            {
                GCAcceleration accelVector = motion.gravity;
                if( fabs(accelVector.x) > fabs(accelVector.y) )
                {
                    NSLog(@"Sideways");
                }
                else
                {
                    NSLog(@"Upright");
                }

            }
        }
    }
#endif
}
于 2016-02-01T02:01:38.223 に答える