Ich habe ein Array und einen Timer, der ein neues Objekt zu meinem Array alle 5 Sekunden hinzufügt, aber ein kleines Problem auftritt. Ich habe einen Code, der wiederholt aufgerufen wird, der die Objekte in meinem Array verschiebt, aber aus irgendeinem Grund hört das vorherige Objekt auf, sich zu bewegen, wenn ein neues Objekt in meinem Array erzeugt wird. Wie mache ich es so, dass jedes einzelne Objekt im Array aufgerufen wird, anstatt nur dasjenige, das als letztes hervorkommt?Verschieben jedes Objekt in meinem Array?
Hier ist mein Code, um die Objekte zu bewegen genannt:
for (UIView *astroids in astroidArray) {
int newX = astroids.center.x + 0;
int newY = astroids.center.y + 1;
astroids.center = CGPointMake(newX,newY);
}
Edit: Sorry, hier ist mein Code für meine Array:
// spawn the astroids every few seconds randomly along the x axis
// and remove them once they get off the screen
if ((gameStarted == YES) && (gameOver == NO)) {
int randomX = arc4random() % 320;
astroidArray = [[NSMutableArray alloc] init];
UIImage *astroid = [UIImage imageNamed:@"astroidwhite.png"];
UIImageView *astroids = [[UIImageView alloc] initWithImage:astroid];
//set X and Y of the new imageView
astroids.center = CGPointMake(randomX , -10);
//add to array
[astroidArray addObject:astroids];
//add to the view, so it gets displayed.
[self.view addSubview: astroids];
[astroids release];
}
Ich denke, das Problem liegt darin, wie Sie "Androiden" zum Array hinzufügen. Können Sie den Code davon zeigen? – drvdijk
gut geschrieben den Code –
Ich aktualisierte die Tags, da dies nicht iPhone-spezifisch ist, nur ein Problem mit Cocoa Speicherverwaltung. Formatierte den Code und fügte die Änderung in die Frage ein. (Bitte löschen Sie die redundante Antwort unten - es ist am besten, wenn der ganze Kontext in der Frage ist.) Ein letzter Vorschlag: Es wird "Asteroid" statt "Astroid" geschrieben. Es spielt keine Rolle, welche Variablennamen Sie wählen, aber beachten Sie die Rechtschreibfehler, wenn Sie sie Benutzern beschreiben. :-) –