Как использовать функцию «наклона» на iphone - PullRequest
0 голосов
/ 01 марта 2011

Я много делал, если изучал это, но я не нашел ответа.

По сути, я делаю приложение для игры в кости для iPhone в Objective-C. Я хочу иметь возможность использовать функцию «наклона», чтобы бросать кости. Например, если пользователь удерживает свое устройство на уровне земли, игра в кости выпадет. Но если пользователь затем наклонит свое устройство вправо, все кости будут «катиться» вправо, пока не достигнут своего предела.

Как можно использовать эту функцию таким образом? И, если возможно, я хочу хранить углы в целочисленном, плавающем, двойном или NSString, чтобы я мог эффективно использовать его и легко тестировать приложение.

Ответы [ 2 ]

3 голосов
/ 24 октября 2011

Вы можете сделать это с помощью акселерометра.Акселерометр даст вам значение для оси XYZ при наклоне устройства.к этому добавьте свойство, которое является типом класса UIAccelerometer.

    UIAccelerometer*  theAccelerometer;

Теперь вы определяете частоту и делегат.Вы должны написать этот код, откуда хотите начать прием.

    theAccelerometer = [UIAccelerometer sharedAccelerometer];
    theAccelerometer.updateInterval = 1 / 50;
    theAccelerometer.delegate = self;

Теперь вам нужно добавить метод делегирования

    -(void) accelerometer:(UIAccelerometer *)accelerometer didAccelerate:(UIAcceleration *)acceleration{
        myX = acceleration.x;
        myY = acceleration.y;
        myZ = acceleration.z;
    }

Хорошо, теперь у вас часто обновляется значение с частотой50 [означает 20 мили секунд].Теперь, если вы хотите прекратить получать эти значения, и, очевидно, вы должны прекратить получать, если вы покинете это представление, и это будет выглядеть следующим образом:

    theAccelerometer.delegate = nil

Снова вы можете снова начать получать данные акселерометра, назначая делегата себе

    theAccelerometer.delegate = self;

если у вас возникнут дополнительные вопросы, вы можете пинговать мне behestee по скайпу

3 голосов
/ 01 марта 2011

К сожалению, я не могу ни комментировать, ни понижать голосование ответа, связанного с постом 2007 года (до того, как был объявлен официальный SDK), который не содержит соответствующей информации API.

Официальное, актуальное руководство предпочтительнее: http://developer.apple.com/library/ios/#documentation/EventHandling/Conceptual/EventHandlingiPhoneOS/MotionEvents/MotionEvents.html

Выше показано, как получить необработанные данные; он не выполнит все расчеты, необходимые для достижения вашей "скользящей" симуляции.

...