Items aus Listen zuweisen?
Ich arbeite derzeit an einem Projekt in MIT App Inventor. Ich soll eine App entwickeln und habe mich für ein Spiel entschieden. Ich brauche Gegner mit zufälligen Bewegungen innerhalb eines Bereiches. Ich habe viel probiert, doch nur ein Ansatz hat meinen Wunsch erfüllt. Dafür brauche ich Bälle. Ich habe aber mehrere Gegner und möchte sie nicht immer einzeln ansprechen, weshalb ich sie in einer Liste zusammengefasst habe. Ich möchte nun, dass jedem Gegner, ein Ball zugewiesen wird, und dieser Ball kann nicht zu einem anderen Gegner zugewiesen werden. Ich habe lange probiert, aber ich finde keine Lösung. Kann mir jemand helfen?
1 Antwort
Es ist extrem schwierig ohne deinen aktuellen Quellcode irgendwas zu machen.
Wenn du die Gegner nicht ansprechen möchtest, ist die einzige Variante, dass du es mit einem for() loop machst.
Also ganz simple umgesetzt, würde mir spontan nur folgendes einfallen:
// Liste mit Bällen und Gegner
List<Ball> balls = new List<Ball>();
List<Gegner> enemys = new List<Gegner>();
// Füge Bälle und Gegner zur Liste hinzu
for (int i = 0; i < anzahlGegner; i++)
{
balls.Add(new Ball());
enemys.Add(new Gegner());
}
// Jeder Gegner bekommt einen Ball
for (int i = 0; i < enemys.Count; i++)
{
int randomIndex = UnityEngine.Random.Range(0, balls.Count);
enemys[i].Ball = balls[randomIndex];
// Zugewiesener Ball wird aus der Liste entfernt, damit er nicht nochmal verteilt wird
balls.RemoveAt(randomIndex);
}
Okay, das wusste ich nicht. :D Ich kenne zwar Scratch, habe aber noch nie etwas von App Inventor gehört. Ich ging davon aus, dass es irgendeine IDE wäre.
Danke für den Hinweis! :)
Wenn es keinen Quellcode gibt, kann keiner beigefügt werden. Mit App Inventor ist ein Baukasten, der aus „Bauklötzen“ besteht. Das ist nur Drag und Drop, wie ein Puzzle. Vielleicht sagt dir Scratch was. Die Tags bei der Frage mit C# und Unity wären damit komplett falsch und haben nichts mit der Frage zu tun. Habe die da jetzt auch mal entfernt.