2011-12-28 3 views
0

Что я хочу сделать, это прочитать acceleration.y и сделать что-то вроде:Как заметить быстрое движение вперед с didAccelerate устарел?

if (acceleration.y > 0.8) { 
    // Do something 
} 

Как didAccelerate осуждается Интересно, как получить у-значение:

motionManager = [[[CMMotionManager alloc] init] autorelease]; 
motionManager.accelerometerUpdateInterval = kUpdateInterval; 

if (motionManager.accelerometerAvailable) { 
    [motionManager startAccelerometerUpdates]; 
} 
else { 
    //this device doesn't have accelerometer notice somewhere?? 
} 

- (void)startAccelerometerUpdates { 
// READ Y-VALUE????? 
} 

Я хочу использовать сырые данные акселерометра, поэтому приложение также работает на 3GS. Можно ли прочитать значение Y?

ответ

2

EDIT: ответ ниже устарел, проверьте these posts на правильном пути.


Старый ответ:

Используйте одноэлементно экземпляр UIAccelerometer для этого, например, в вашем AppDelegate

//in your launching method 
    UIAccelerometer * accel = [UIAccelerometer sharedAccelerometer]; 
    accel.delegate = self; 

//delegate method: 
-(void)accelerometer:(UIAccelerometer *)accelerometer didAccelerate:(UIAcceleration *)acceleration{ 
    // use the y-property of the acceleration 
} 
+0

это устарело – Keller

+0

Да, вы правы. Просто любопытно, что напугало вас от публикации какой-либо информации о современном решении;) Я отредактирую свой ответ. –

0

Посмотрите на раздел CMMotionManager class reference и поиск по имени «Передав обновления движения в определенные промежутки времени» , В пучке «Акселерометр» говорится:

Установите для свойства accelometerUpdateInterval значение интервала обновления. Вызовите startAccelerometerUpdatesToQueue: withHandler: метод, проходящий в блоке типа CMAccelerometerHandler. Данные акселерометра передаются в блок как объекты CMAccelerometerData.

CMAccelerometerData имеет ссылку на CMAcceleration, которая является структурой, которая удерживает на оси ускорение.

 Смежные вопросы

  • Нет связанных вопросов^_^