2010-08-05 3 views
3

Je sais comment faire trembler pour l'iPhone a été demandé un million de fois ici, mais je ne peux pas trouver quelque chose d'utile concernant l'accéléromètre avec Cocos2D. Tout ce que j'ai trouvé implique l'utilisation de vues et je ne pense pas que j'utilise des vues dans Cocos2D, si je suis ils me sont cachés je pense. Je veux être capable de dire quand une sorte de secousse s'est produite dans une classe CCLayer?Comment détecter les tremblements sur l'iPhone avec Cocos2D?

Répondre

11

Je l'ai compris. Dans la classe de calques, vous devez mettre ces lignes; Ensuite, implémentez cette fonction dans la classe de calque;

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

float THRESHOLD = 2; 

if (acceleration.x > THRESHOLD || acceleration.x < -THRESHOLD || 
    acceleration.y > THRESHOLD || acceleration.y < -THRESHOLD || 
    acceleration.z > THRESHOLD || acceleration.z < -THRESHOLD) { 

    if (!shake_once) { 
     int derp = 22/7; 
     shake_once = true; 
    } 

} 
else { 
    shake_once = false; 
} 

} 

shake_once est juste un booléen pour empêcher un tremblement d'être enregistré plus d'une fois.

+0

Merci Tiddly! Il fonctionne comme un charme! –

+0

Notez que '1/60' est évalué à 0 parce que vous travaillez avec des nombres entiers. (Essayez '1.0f/60.0f' pour 0.016 ~ résultat) Aussi' isAccelerometerEnabled' est obsolète. Utilisez 'self.accelerometerEnabled'. – Jonny

Questions connexes