Je fais une application de jeu simple où vous appuyez sur un bouton gauche/droite, et UIImageView se déplace et anime. Voici le problème - Je veux que le UIImageView cesse de bouger lorsqu'il touche Essayer d'obtenir un UIImageView pour arrêter de bouger quand il atteint les limites de l'écran ... aide!
self.view.bounds.size.width
Comment faire?
Voici le code existant:
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
UITouch *touch = [[event allTouches] anyObject];
if([touch view] == rightbutton){
NSLog(@"touch rightbutton");
player.animationImages = [NSArray arrayWithObjects:
[UIImage imageNamed:@"linkr1.png"],
[UIImage imageNamed:@"linkr2.png"],
[UIImage imageNamed:@"linkr3.png"],
[UIImage imageNamed:@"linkr4.png"],
[UIImage imageNamed:@"linkr5.png"],
[UIImage imageNamed:@"linkr6.png"],
[UIImage imageNamed:@"linkr7.png"],
[UIImage imageNamed:@"linkr8.png"],
nil];
player.animationRepeatCount = 0;
[self.view addSubview:player];
[player startAnimating];
rightbuttontimer = [NSTimer scheduledTimerWithTimeInterval:0.01 target:self selector:@selector(rightrepeater) userInfo:nil repeats:YES];
}
if([touch view] == leftbutton){
NSLog(@"touch leftbutton");
player.animationImages = [NSArray arrayWithObjects:
[UIImage imageNamed:@"linkr1l.png"],
[UIImage imageNamed:@"linkr2l.png"],
[UIImage imageNamed:@"linkr3l.png"],
[UIImage imageNamed:@"linkr4l.png"],
[UIImage imageNamed:@"linkr5l.png"],
[UIImage imageNamed:@"linkr6l.png"],
[UIImage imageNamed:@"linkr7l.png"],
[UIImage imageNamed:@"linkr8l.png"],
nil];
player.animationRepeatCount = 0;
[self.view addSubview:player];
[player startAnimating];
leftbuttontimer = [NSTimer scheduledTimerWithTimeInterval:0.01 target:self selector:@selector(leftrepeater) userInfo:nil repeats:YES];
}
}
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event {
UITouch *touch = [[event allTouches] anyObject];
if([touch view] == rightbutton){
NSLog(@"let go of rightbutton");
[rightbuttontimer invalidate];
[player stopAnimating];
}
if([touch view] == leftbutton){
NSLog(@"let go of leftbutton");
[leftbuttontimer invalidate];
[player stopAnimating];
}
}
- (void)rightrepeater {
CGPoint center = (CGPoint)[player center];
center.x += 10;
[player setCenter:center];
}
- (void)leftrepeater {
CGPoint center = (CGPoint)[player center];
center.x += -10;
[player setCenter:center];
}
Toute aide sera appréciée. Merci!
Maintenant XCode me donne l'erreur: opérandes invalides à la méthode binaire/(ont « id » et « int ») deux fois – Flafla2
C'est probablement parce qu'il n'y a pas de '-width()' sur vos joueurs. Voir la note à la toute fin de mon message. Je ne suis pas sûr de ce qu'il faut utiliser pour la largeur du joueur. Je suppose que vous pourriez le coder en dur si vous saviez à quelle distance ils étaient à l'avance. –
Oh, désolé pour ça! la largeur de l'image était de 91 px, j'ai donc remplacé [player width]/2 par 45.5. Merci! – Flafla2