Home | Aanpassen | Blog | Extra's | Log In | Info
Handleiding | D&D iconen | GML Parser | Archief | Iso City
Gebruikersnaam: Wachtwoord:  
Over ons | Features | Directory | Banners | Contact

Het ontwerpen van spellen met Game Maker
Het ontwerpen van spellen met Game Maker

With constructies

Zoals eerder aangegeven, is het mogelijk om waarden te lezen en te veranderen van variabelen in andere instanties. Maar in een aantal gevallen wil je veel meer met andere instanties. Bijvoorbeeld, denk je eens in dat je alle ballen 8 pixels naar beneden wilt verplaatsen. Je denkt misschien dat je dit behaalt met dit stukje code

bal.y = bal.y + 8;

Maar dit in niet correct. De rechter kant van de definitie krijgt de waarde van de y-coördinaat van de eerste bal en voegt 8 eraan toe. Daarna is deze nieuwe waarde ingesteld als y-coördinaat voor alle ballen. Dus het resultaat is dat ze hetzelfde y-coördinaat krijgen. Het statement

bal.y += 8;

heeft precies hetzelfde effect omdat het een simpele afkorting van het eerste statement is. Dus hoe bereik je dit? Voor dit doel is er het with statement. Zijn globale vorm is

with (<expression>) <statement>

<expression> geeft 1 of meer instanties aan. Hiervoor kan je het instantie id gebruiken, de naam van een object (om alle instanties van 1 object aan te geven) of 1 van de speciale objecten (all, self, other, noone). <statement> wordt nu uitgevoerd voor elk van deze aangegeven instanties, alsof het de huidige (self) instantie is. Dus, om alle ballen 8 pixels naar beneden te verplaatsen kun je typen.

with (bal) y += 8;

Indien je meerdere statements wilt uitvoeren, plaats dan '{' en '}' om de statements heen. Dus bijvoorbeeld, om alle ballen te verplaatsen naar een willekeurige plek, kun je gebruiken

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

Merk op dat, in de statement(s), de aangeven instantie de self instantie is geworden. En de originele self instantie wordt de other instantie. Dus bijvoorbeeld, om alle ballen te verplaatsen naar de positie van de huidige instantie, kun je typen

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

Het gebruik van het with statement is erg krachtig. Laat me je nog een paar voorbeelden geven. Om alle ballen te vernietigen kun je typen

with (bal) instance_destroy();

Als een bom ontploft en je wilt alle instanties dichtbij de bom vernietigen, dan kun je typen

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

Zoeken Zoeken


Alternatieve versies Alternatieve versies

Je kan de handleiding ook lezen op een lange pagina (± 1.5 mb)

Ook beschikbaar in: Engels Frans Duits

ZIP Download helpfile

Advertentie Advertentie

GameMaker Handleiding