Через Как получить доступ к информации о движении и ориентации удаленного устройства:
Прежде всего, нужно использовать NSNotificationCenter
для поиска контроллеров. Вероятно, лучше всего сделать это при запуске приложения. Что-то вроде этого:
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(controllerDidConnect:) name:GCControllerDidConnectNotification object:nil];
Затем мы можем использовать следующий код после подключения, чтобы сохранить информацию об устройстве в свойстве:
- (void)controllerDidConnect:(NSNotification *)notification {
self.myController = notification.object;
}
Удаленный профиль является подклассом профиля микрогеймпада. Движение и другие данные можно отслеживать, добавив обработчик события изменения значения:
GCMicroGamepad *profile = self.myController.microGamepad
profile.valueChangedHandler= ^ (GCMicroGamepad *gamepad, GCControllerElement *element) {
if (self.myController.motion) {
NSLog(@"motion supported");
NSLog(@"gravity: %f %f %f", self.myController.motion.gravity.x, self.myController.motion.gravity.y, self.myController.motion.gravity.z);
NSLog(@"userAcc: %f %f %f", self.myController.motion.userAcceleration.x, self.myController.motion.userAcceleration.y, self.myController.motion.userAcceleration.z);
NSLog(@"rotationRate: %f %f %f", self.myController.motion.rotationRate.x, self.myController.motion.rotationRate.y, self.myController.motion.rotationRate.z);
NSLog(@"attitude: %f %f %f %f", self.myController.motion.attitude.x, self.myController.motion.attitude.y, self.myController.motion.attitude.z, self.myController.motion.attitude.w);
}
};
person
Daniel Storm
schedule
29.09.2015