Startseite | Anpassen | Blog | Extras | Anmelden | Info
Handbuch | D&D icons | GML Parser | Archiv | Iso City
Benutzername: Passwort:  
Über | Funktionen | Verzeichnis | Banner | Kontakt

Den Game Maker benutzen
Den Game Maker benutzen

With Konstruktion

Wie oben angegeben ist es möglich, die Variablen anderer Instanzen zu verarbeiten. Aber es kann vorkommen, das du noch mehr mit den anderen Instanzen tun möchtest. Z.B. alle Bälle um 8 Pixel nach unten Bewegen. Du denkst wohl, das dies mit folgendem Code gemacht werden kann

ball.y = ball.y + 8;

Das ist aber nicht richtig. Dieser Code nimmt die y Koordinate des ersten Balls und fügt 8 hinzu. Dann wird dieser neue Wert als y-Koordinate aller Bälle gesetzt. Das Ergebnis wäre, dass alle Bälle an der selben y-Koordinate sind. Das Statement

ball.y += 8;

hat den selben Effekt, es ist nur eine Variante unseres oberen Beispiels. Wie erreichen wir dies also? Dafür gibt es das with Statement. Die allgemeine Form ist

with (<expression>) <statement>

<expression> gibt eine oder mehrere Instanzen an. Du kannst eine Instanz-ID, den Objektnamen (um alle Instanzen zu adressieren) oder eines der speziellen Objekte (all, self, other, none) angeben. <statement> wird dann für jede Instanz ausgeführt, als wäre diese die aktuelle (self) Instanz. Um also alle Bälle 8 Pixel nach unten zu bewegen, kannst du folgendes eingeben.

with (ball) y += 8;

Wenn du mehrere Aufgaben durchführen möchtest, mache geschweifte Klammern drumherum. Um z.B. alle Bälle an eine zufällige Position zu bewegen, benutze

with (ball)
{
x = random(room_width);
y = random(room_height);
}

Beachte das in den Statements die angegebene Instanz die self-Instanz wird. Die ursprüngliche self-Instanz wurde zur other-Instanz. Um z.B. alle Bälle auf die Position der Instanz zu setzen, nutze

with (ball)
{
x = other.x;
y = other.y;
}

Das with Statement ist sehr leistungsfähig. Ich geb dir ein paar mehr Beispiele. Um alle Bälle zu zerstören, nutze

with (ball) instance_destroy();

Wenn eine Bombe explodiert und du alle Instanzen in der Nähe zerstören möchtest, nutze

with (all)
{
if (distance_to_object(other) < 50) instance_destroy();
}

Suche Suche


Alternative Versionen Alternative Versionen

Du kannst dieses Handbuch auch auf einer langen Seite (± 1.5 mb) ansehen.

Auch verfügbar in: Niederländisch Englisch Französisch

ZIP Download helpfile

Werbung Werbung

GameMaker Handbuch