Het ontwerpen van spellen met Game Maker
Berichten
Het tweede communicatie mechanisme dat Game Maker ondersteund is het sturen en ontvangen van berichten. Een speler kan berichten sturen naar één of alle andere spelers. Spelers kunnen zien of berichten zijn aangekomen en actie ondernemen aan de hand van dat bericht. Berichten kunnen worden verstuurd in gegarandeerde modus of in een niet gegarandeerde modus, wat sneller is.De volgende functies voor berichten bestaan in Game Maker:
mplay_message_send(player, id, val) Stuurt een bericht naar de aangegeven speler (gebruik of de naam of het id van een speler; gebruik 0 om het bericht aan alle spelers te sturen). id is een geheel getal dat het id van het bericht aangeeft en val is de waarde in het bericht (of een getal of een regel). Het bericht word verzonden in een niet gegarandeerde modus. Als val een regel bevat is het maximale aantal karakters 30000.
mplay_message_send_guaranteed(player, id, val) Stuurt een bericht naar de aangegeven speler (gebruik of de naam of het id van een speler; gebruik 0 om het bericht aan alle spelers te sturen). id is een geheel getal dat het id van het bericht aangeeft en val is de waarde in het bericht (of een getal of een regel). Het bericht word verzonden in een gegarandeerde modus. Als val een regel bevat is het maximale aantal karakters 30000..
mplay_message_receive(player) Ontvangt het volgende bericht uit de wacht rij van de aangegeven speler (gebruik de naam of het id van een speler). Gebruik 0 voor berichten van iedere speler te ontvangen. De functie geeft terug of er inderdaad een nieuw bericht was. Als dat het geval is kun je de volgende functies gebruiken om de inhoud van de berichten te krijgen:
mplay_message_id() Geeft het id van het laatst ontvangen bericht terug.
mplay_message_value() Geeft de waarde van het laatst ontvangen bericht terug.
mplay_message_player() Geeft de speler terug die het laatst ontvangen bericht stuurde.
mplay_message_name() Geeft de naam van de speler terug die het laatst ontvangen bericht stuurde.
mplay_message_count(player) Geeft het aantal berichten terug dat nog steeds in de wacht rij staat van een bepaalde speler (gebruik 0 om alle berichten te tellen).
mplay_message_clear(player) Verwijdert alle berichten die nog steeds in de wacht rij van een bepaalde speler staan (gebruik 0 om alle berichten te verwijderen).
Een paar opmerkingen zijn hier op zijn plaats. Ten eerste, als je een bericht wilt verzenden naar één bepaalde speler, moet je zijn unieke id weten. Zoals eerder aangegeven kun je dit te weten komen met de functie: mplay_player_id(). Deze speler id word ook gebruikt om berichten van één bepaalde speler te ontvangen. Een alternatieve manier om dit te doen is de naam van de speler geven als tekenreeks. Als meerdere spelers dezelfde naam hebben krijgt alleen de eerste het bericht.
Ten tweede vraag je je misschien af waarom ieder bericht een eigen id heeft. De reden hiervoor is dat het je spel helpt om verschillende typen berichten te sturen. De ontvanger kan het type bericht checken en passende actie ondernemen. (Omdat berichten niet gegarandeerd aankomen zou het sturen van id en waarde in verschillende berichten serieuze problemen opleveren.)