Как да използвам Core Motion и жироскоп в Xcode 5

Търсих някаква информация за Core motion и жироскопа и все още не съм намерил подходящ отговор.

Работя с Xcode 5

Въпросът ми:

Как мога да направя изображение (или в този случай играч) да се движи наляво или надясно, като наклоня iPhone, точно като героя в играта, наречена „Doodle Jump“?

Вече го накарах да скача, но не мога да го накарам да се движи наляво или надясно, като наклоня iPhone. Имам и акаунт на програмист и го пробвах с реално устройство.

Всякакъв вид помощ ще бъде много ценена!


person Kaspersson    schedule 17.03.2014    source източник
comment
Ще спестите някои отрицателни гласове и ще получите някои добри отговори, ако публикувате кода, който сте изпробвали.   -  person vefthym    schedule 17.03.2014
comment
xcode няма нито Core Motion, нито жироскоп. това е просто IDE.   -  person vikingosegundo    schedule 06.04.2014
comment
@vefthym Не съм съгласен, мисля, че той е много ясен в заглавието си: Как да използвам Core Motion и жироскоп. Въпросът му обаче е доста конкретен. Така че всъщност, слава Богу, че не е поставил това, което вече има. В противен случай би било много безполезно за бъдещите читатели   -  person Louis Hong    schedule 30.08.2014
comment
Мисля, че имате предвид SDK 7 от xcode 5 Kaspersson   -  person Louis Hong    schedule 30.08.2014


Отговори (1)


1. Създайте нов проект Spritekit:

въведете описание на изображението тук

2. Добавете Core Motion Framework

въведете описание на изображението тук

3. Добавете този код в метода „touchesBegan“ на вашия файл MyScene.m:

sprite.size=CGSizeMake(20, 20);

4. Добавете този код в метода „update“ на вашия файл MyScene.m:

CMMotionManager* _motionManager;
 -(void)update:(CFTimeInterval)currentTime {
     if (_motionManager==nil) {
         _motionManager=[[CMMotionManager alloc]init];
         _motionManager.deviceMotionUpdateInterval=0.25;
         [_motionManager startDeviceMotionUpdates];
     }
     SKSpriteNode *sprite;
     for (int i=0; i<self.children.count;i++) {
        sprite=[self.children objectAtIndex:i];
        sprite.position = CGPointMake(sprite.position.x * _motionManager.deviceMotion.attitude.pitch*10, sprite.position.y);
     }
}

Можете да намерите по-подробна версия тук.

Ето малък видеоклип с резултата от този код

person Stefan    schedule 05.04.2014
comment
Благодаря ви за отговора, но има един проблем. Моята игра е в приложението Single View. Не мога да използвам командите на играта spritekit поради това. Някакви идеи как това може да се направи в приложение за един изглед? - person Kaspersson; 08.04.2014
comment
CMMotionManager не е част от SpriteKit. Можете да го използвате и за UIViews. Вместо да препозиционирате SKSpriteNode, трябва да коригирате позицията на вашия UIView - person Stefan; 08.05.2014