/ / Comment créer et gérer des multiples du même objet dans Objective-C? - objectif-c, objet, rebond

Comment créer et gérer des multiples du même objet dans Objective-C? - objectif-c, objet, rebond

J'essaie d'obtenir plusieurs objets Ball pour formerà l'écran et rebondir. Je le fais bien pour un, mais j'ai des problèmes pour en ajouter plus. Idéalement, le nombre de balles variera, mais pour l’instant, j’essaie de placer deux éléments dans un tableau pour modifier le reste du code.

Mon problème est que tout compile et fonctionne bien, mais je n'ai toujours qu'une balle. C’est là que je soupçonne que le problème se pose.

J’ai aussi l’impression de faire cela dans viewDidLoad, mais je ne suis pas sûr de savoir à quoi il appartient.

viewDidLoad:

- (void)viewDidLoad {
[super viewDidLoad];

balls = [[NSMutableArray alloc] init];
CGPoint newPos = CGPointMake(5,5);

for(int i = 0; i < 2; i++) {
[balls addObject:[[[Ball alloc] init] autorelease]];
}

[[balls objectAtIndex:1] setPosition:newPos];

[NSTimer scheduledTimerWithTimeInterval:1.0 / 30.0 target:self selector:@selector(onTimer) userInfo:nil repeats:YES];

}

- (void)onTimer
{
for(int i = 0; i < [balls count]; i++) {
Ball *b = [balls objectAtIndex:i];
[b update];
[(BallView *)self.view refresh:b];
}
}


- (void)refresh:(Ball *)aBall {
ball = aBall;
[self setNeedsDisplay];

}

J’ai ajouté mon onTimer, je pensais ajouter le retarden créant les boules serait suffisant pour en faire un non-sujet. Toute mise à jour ne fait que changer la vitesse / direction en fonction de l'accéléromètre / des collisions avec le bord de l'écran.

Réponses:

1 pour la réponse № 1

En effet, les deux balles devraient être affichées. Vérifiez leurs coordonnées pour voir si elles se chevauchent. Sur une autre note, il semble que vous fuyiez le tableau de billes, ainsi que les objets ball1 et ball2. Vous allouez les initier, vous devez donc les libérer à la fin de viewDidLoad ou, si vous utilisez les propriétés rétention, les autoriser à nouveau automatiquement lorsque vous les définissez afin qu'elles soient conservées par les propriétés.

Quant à l'endroit où le code devrait être situé,viewDidLoad devrait suffire, mais envisagez de placer le tableau balls dans la méthode init que vous appelez pour créer votre ViewController, car il n’est probablement pas impossible que votre ViewController fonctionne sans la configuration de ce tableau.