Pour faciliter certaines choses dans GameMaker Studio 2, vous pouvez utiliser un ou plusieurs mots-clés dans vos scripts et actions. Ces mots-clés sont principalement utilisés pour identifier les instances et chacun est expliqué dans le texte ci-dessous. Notez que tous les mots-clés sont représentés par une valeur entière négative en interne. Il faut donc faire attention lorsque vous attribuez des valeurs à des variables, car vous pourriez obtenir des résultats inattendus plus tard car GameMaker Studio 2 interprète la valeur que vous avez utilisée comme autre chose. Vous devez également noter que l'utilisation des valeurs au lieu des mots-clés dans votre code n'est pas du tout recommandée et pourrait causer des problèmes plus tard.
Mot-clé La description valeur self L'instance qui exécute le bloc de code actuel. -1 self peut être utilisé pour identifier l'instance d'appel du bloc de code actuel. Il renvoie toujours la valeur -1, que GameMaker Studio 2 interprète comme l'ID unique de l'instance. Par exemple:
var val = 100;
with (instance_create_layer(x, y, "Instances", obj_Fire))
{
self.val = val;
}Dans cet exemple, vous pouvez voir que nous avons une variable locale appelée val et nous voulons qu'il définisse la variable d' instance avec le même nom dans l'instance d'objet nouvellement créée. Pour identifier correctement la variable d'instance et indiquer à GameMaker Studio 2 de la définir dans l'instance appelant le bloc de code, nous utilisons self mot-clé. Notez que nous recommandons d'utiliser le id mot-clé dans la plupart des situations comme celle-ci sur la self mot-clé car il est plus explicite et évidente ce qui se passe exactement.
Mot-clé La description valeur other L'autre instance impliquée dans un événement de collision, ou l'autre instance d'un with fonction. -2 Le mot clé spécial other a deux manières différentes de pouvoir être utilisé pour référencer une instance spécifique: lorsqu'il est utilisé dans un with fonction (expliqué ici ) ou lorsqu'il est utilisé dans un événement de collision, ce que cette section va expliquer.
Un événement de collision ne peut se produire qu'entre deux instances. Vous pouvez avoir plusieurs collisions entre plusieurs instances, mais elles sont toutes résolues par GameMaker Studio 2 sur une base 1 sur 1, avec l'instance qui a l'événement de collision et l'instance «autre» concernée. Imaginez que vous ayez un objet de joueur, plusieurs objets ennemis et plusieurs objets de balle que l'ennemi peut tirer sur vous. Vous pouvez affecter à chaque ennemi une seule occurrence de balle, mais avec une variable de dommage différente qui lui est assignée au hasard, par exemple:
var nnn;
nnn = instance_create_layer(x, y, "Bullets", obj_Bullet);
nnn.damage = 5 + irandom(5);
nnn.speed = 8;
nnn.direction = point_direction(x, y, obj_Player.x, obj_Player.y);Voyez comment nous définissons ses variables à l'aide de la méthode des points décrite dans la section Adressage des variables ? Cela donnera aux objets de balle une valeur de dégâts différente. Mais qu'en est-il de l'objet joueur? Comment va-t-il détecter les dégâts qu'il doit subir? En utilisant other dans l'événement de collision:
hp -= other.damage;
if hp <= 0 instance_destroy();Le code ci-dessus déduira la quantité stockée dans l' autre instance dans la variable "damage" de collision de la variable "hp" du joueur, puis il vérifiera si le "hp" est inférieur ou égal à 0. Si c'est le cas cela détruira l'objet joueur. Veuillez noter que l' autre utilisé de cette manière ne fonctionne que dans l'événement de collision et que l'autre instance doit faire vérifier la variable, sinon une erreur sera générée. Cependant, vous pouvez assigner des valeurs à des variables, ou même en créer de nouvelles, en utilisant d' autres dans l'événement de collision, comme ceci:
other.mana += 10; //add ten to the other instance "mana" variable
other.hit = true; //set the other instance variable "hit" to true, creating it if the variable doesn't already exist
Mot-clé La description valeur all Toutes les instances actuellement actives dans la pièce. -3 Ce mot clé est utilisé pour indiquer à GameMaker Studio 2 qu'une fonction doit être appliquée ou pour vérifier toutes les instances actives dans une pièce (les instances désactivées ne seront pas vérifiées ou consultées). Vous ne pouvez pas utiliser all pour accéder ou définir des variables dans d'autres instances en utilisant la méthode point (voir ici ), mais vous pouvez l'utiliser lors de l'appel with(), par exemple:
with (all)
{
speed = 0;
}Le code ci-dessus définit la vitesse de toutes les instances de la pièce sur 0. Vous pouvez également utiliser all dans les fonctions pour cibler ou vérifier toutes les instances dans la pièce, par exemple:
inst = instance_position(mouse_x, mouse_y, all); //Check a point for any active instance in the room
if collision_line(x, y, mouse_x, mouse_y, all, false, true) {} //Check all instances for a collision along a line
mp_grid_add_instances(grid, all, false); //Add all instances in the room into a motion planning grid
all est un mot clé très utile et peut être utilisé dans de nombreuses situations au sein de votre code et de vos actions, en réduisant souvent la quantité de code que vous devez écrire pour obtenir l'effet désiré.
Mot-clé La description valeur noone Aucune instance du tout. -4 Cela peut sembler étrange, mais plusieurs fois en programmant vos jeux, vous trouverez le besoin de vérifier s'il n'y a pas d'instances trouvées à un endroit, ou dans une collision, etc... Dans ces cas, vous utiliseriez ce mot-clé pour vérifier rien, quelque chose comme ça:
if instance_nearest(x, y, obj_enemy) != noone
{
//do something as there is an enemy instance near
}Dans cet exemple, la fonction instance_nearest() retournera soit noone ou l'identifiant unique de l'instance trouvée la plus proche. Fondamentalement, chaque fois que vous avez besoin de vérifier une instance, vous pouvez vous attendre à obtenir soit noone ou un ID d'instance unique renvoyé.