J'utilise l'accéléromètre pour déplacer quelques UIImageViews
autour de l'écran, au moment où l'accéléromètre ne fonctionne que lorsqu'un NSTimer
est à 0, c'est bien. Je voudrais également faire arrêter à nouveau l'accéléromètre lorsqu'une fonction différente se produit.IPhone sdk arrêter l'accéléromètre de travailler quand quelque chose se passe
ici est mon code au moment:
-(BOOL) accelerometerWorks {
return time == 0;
}
-(void) accelerometer:(UIAccelerometer *)accelerometer didAccelerate:(UIAcceleration *)acceleration{
if(![self accelerometerWorks]) return;
valueX = acceleration.x*25.5;
int newX = (int)(ball.center.x +valueX);
if (newX > 320-BALL_RADIUS)
newX = 320-BALL_RADIUS;
if (newX < 0+BALL_RADIUS)
newX = 0+BALL_RADIUS;
int XA = (int)(balloonbit1.center.x +valueX);
if (XA > 320-BALL_RADIUS)
XA = 320-BALL_RADIUS;
if (XA < 0+BALL_RADIUS)
XA = 0+BALL_RADIUS;
int XB = (int)(balloonbit2.center.x +valueX);
if (XB > 320-BALL_RADIUS)
XB = 320-BALL_RADIUS;
if (XB < 0+BALL_RADIUS)
XB = 0+BALL_RADIUS;
int XI = (int)(balloonbit3.center.x +valueX);
if (XI > 320-BALL_RADIUS)
XI = 320-BALL_RADIUS;
if (XI < 0+BALL_RADIUS)
XI = 0+BALL_RADIUS;
int XJ = (int)(balloonbit4.center.x +valueX);
if (XJ > 320-BALL_RADIUS)
XJ = 320-BALL_RADIUS;
if (XJ < 0+BALL_RADIUS)
XJ = 0+BALL_RADIUS;
int XE = (int)(balloonbit5.center.x +valueX);
if (XE > 320-BALL_RADIUS)
XE = 320-BALL_RADIUS;
if (XE < 0+BALL_RADIUS)
XE = 0+BALL_RADIUS;
int XF = (int)(balloonbit6.center.x +valueX);
if (XF > 320-BALL_RADIUS)
XF = 320-BALL_RADIUS;
if (XF < 0+BALL_RADIUS)
XF = 0+BALL_RADIUS;
int XH = (int)(balloonbit8.center.x +valueX);
if (XH > 320-BALL_RADIUS)
XH = 320-BALL_RADIUS;
if (XH < 0+BALL_RADIUS)
XH = 0+BALL_RADIUS;
ball.center = CGPointMake (newX, 429);
balloonbit1.center = CGPointMake (XA, 429);
balloonbit2.center = CGPointMake (XB, 426);
balloonbit3.center = CGPointMake (XI, 410);
balloonbit4.center = CGPointMake (XJ, 415);
balloonbit5.center = CGPointMake (XE, 409);
balloonbit6.center = CGPointMake (XF, 427);
balloonbit8.center = CGPointMake (XH, 417);
}
Tout cela fonctionne très bien, je voudrais maintenant arrêter l'accéléromètre de travailler, en utilisant la même méthode
de accelerometerWorks ou une nouvelle méthode, accelerometerWontWork .
C'est le code qui, quand on l'appelle, je voudrais que l'accéléromètre s'arrête. (Il est très long, donc je ne vais pas mettre tous là, mais son tout de même tout au long):
-(void) checkCollision{
if (CGRectIntersectsRect(pinend.frame, balloonbit1.frame)){
if (balloonbit1.frame.origin.y > pinend.frame.origin.y){
[maintimer invalidate];
levelfailed.center = CGPointMake (160, 235);
}
}
if (CGRectIntersectsRect(pinend.frame, balloonbit2.frame)){
if (balloonbit2.frame.origin.y > pinend.frame.origin.y){
[maintimer invalidate];
levelfailed.center = CGPointMake (160, 235);
}
}
if (CGRectIntersectsRect(pinend.frame, balloonbit3.frame)){
if (balloonbit3.frame.origin.y > pinend.frame.origin.y){
[maintimer invalidate];
levelfailed.center = CGPointMake (160, 235);
}
}
}
Je comprends que je dois en faire un BOOL
. C'est très bien.
Si je ne l'ai pas bien expliqué s'il vous plaît dites et je vais le réécrire.
Merci! Harry.
Bump, quelqu'un s'il vous plaît? – Harry