instance_change


La description

Vous pouvez utiliser cette fonction pour changer une instance d'un objet en une autre instance d'un objet différent, et en même temps décider si vous souhaitez exécuter les instances initiales Destruction et nettoyage des événements et les nouvelles instances Créer un événement. De cette façon, vous pouvez avoir (par exemple) une bombe dans une explosion - auquel cas l'argument «perf» serait probablement vrai car vous voudriez que la bombe fasse son événement Destroy Event and Clean Up, ainsi que le Explosion pour effectuer son événement de création - ou vous pourriez avoir votre personnage de joueur changer dans un autre - dans ce cas, l'argument "perf" serait probablement faux car vous ne voulez pas que les instances exécutent leurs événements Create et Destroy / Clean Up.

Il est à noter que changer l'instance signifie que vous ne devriez pas effectuer d'autres actions avec cette instance jusqu'à l'étape suivante, en essayant en particulier d'accéder aux variables etc... car cela entraînerait une erreur. Fondamentalement, vous changez l'instance mais elle n'est pas disponible jusqu'à la fin de l'étape en cours, donc accéder à l'une des variables qu'elle contient directement (par exemple, appeler obj_Changed.x ) ne fonctionnera pas.

ATTENTION! Lorsque vous modifiez une instance activée pour la physique, les propriétés physiques ne seront pas transférées à la nouvelle instance en cours de modification. Par conséquent, vous devez avoir du code en place pour "transférer" l'état physique de l'instance actuelle vers la nouvelle instance, ou avoir défini les propriétés physiques des nouvelles instances dans son événement de création ou dans l'éditeur d'objet. Pour cette raison, il est recommandé de ne pas utiliser cette fonction avec des instances activées pour la physique, mais plutôt d'utiliser une combinaison de instance_destroy() et instance_create_layer().


Syntaxe:

instance_change(obj, perf);


Arguments:

Argument La description
obj Le nouvel objet que l'objet appelant va changer.
perf Que ce soit pour créer les événements de création et de destruction de cet objet (true) ou non (false).


Résultats:

N/A


Exemple:

if keyboard_check(vk_enter)
   {
   instance_change(obj_Player_Swimming, false);
   exit;
   }

Le code ci-dessus changera l'instance appelante en une instance de "obj_Player_Swimming" sans effectuer l'événement original de destruction des instances ni les nouvelles occurrences créer l'événement lorsque l'utilisateur appuie sur la touche "Entrée", sortant du bloc de code une fois terminé.