Jak mohu použít accelemetor pohnout ccpsprite / obrazu doleva a doprava? (Podobně jako v doodle skok)

hlasů
0

Snažil jsem se použít kód z http://github.com/haqu/tweejump ale to není hladký ... to dělá 10-20px teleporty :(.

Existuje lepší způsob?

Někteří kód by bylo skvělé.

Děkuji mnohokrát!

:)

PS: Já používám Cocos2d.

Položena 15/01/2011 v 20:28
zdroj uživatelem
V jiných jazycích...                            


1 odpovědí

hlasů
1

Spočítat požadovanou rychlost vašeho sprite jako funkce měření akcelerometru.

Nejjednodušší způsob je použít lineární závislost: spriteVel = cft*accValue, kde CFT je nějaký koeficient ukazuje, jak rychle bude vaše sprite pohyb

Dalším způsobem, jak se říci, že zrychlení vašeho sprite je lineární funkcí měření akcelerometru: spriteAcc = cft*accValuea vypočítat rychlost jako lineární funkce zrychlení: spriteVel = spriteInitVel + time*accValue

Které mohou být snadno implementovány ve vaší tickfunkci Wich se nazývá každý snímek ve hře takto: `spriteVel + = timeSinceLastCall * accValue‘

Také v této funkci aktuální polohy skřítka, jako je tento: spritePos = timeSinceLastCall*spriteVel

To bude produkovat hladký a realistický (v případě použití druhého přístupu) pohybu skřítkovou

Chcete-li povolit akcelerometru přidat tento kód na metodu init vrstvě

isAccelerometerEnabled = YES;
[[UIAccelerometer sharedAccelerometer] setUpdateInterval:(TIMER_INTERVAL)];

kde TIMER_INTERVAL je nutné pro vás interval (1./30 například)

implementovat tuto funkci ve svém vrstvě příliš šetřit akcelerometru opatření

- (void)accelerometer:(UIAccelerometer*)accelerometer didAccelerate:    (UIAcceleration*)acceleration{

}

Je také možné aktualizovat vodník zrychlení / rychlosti / polohu v této funkci

UPRAVIT:

http://developer.apple.com/library/ios/#documentation/uikit/reference/UIAcceleration_Class/Reference/UIAcceleration.html

- (void)accelerometer:(UIAccelerometer*)accelerometer didAccelerate:    (UIAcceleration*)acceleration{

}

užijte zrychlení vektor ze zrychlení proměnné

například x:

float accX = [acceleration x];
Odpovězeno 15/01/2011 v 23:18
zdroj uživatelem

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more