我一直在寻找一种方法来检查Siri Remote的当前方向或注册Siri Remote方向更改,但我还没有找到任何东西。是否可以这样做(不需要解释原始重力数据)?
我已经 了解如何在“microGamepad”上使用“allowsRotation”禁用自动方向更改。这很酷!
答案 0 :(得分: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
}