Création de jeux avec Game Maker
Paramétrage avancé
Il y a deux caractéristiques de l'onglet settings (paramétrage) que nous n'avons pas encore abordées. La première concerne la case à cocher nommée Persistent. Habituellement, lorsque vous quittez une room pour y retourner ultérieurement, les paramétres de la room sont à chaque fois réinitialisés à leurs valeurs initiales. C'est utile si vous avez plusieurs niveaux dans votre jeu mais cela ne sera certainement pas l'effet recherché par exemple dans un jeu de type RPG (NDT : jeu d'aventures). Dans ce cas, les paramètres de la room devront être précisément les mêmes que ceux de la room lorsque vous l'aviez quittée la dernière fois. En cochant la case Persistent, c'est ce qui se passera exactement. Le statut de la room sera mémorisé de telle manière que lorsque vous y retournerez plus tard, la room sera exactement identique. Seule une relance du jeu réinitialisera la room. Il existe cependant une exception à ce principe. Si vous marquez certains objets comme persistants, les instances de ces objets ne resteront pas dans la room mais seront placées dans la prochaine room.La seconde caractéristique a trait au bouton Creation code (création de code). Vous pourrez ici taper du code en GML (Game Maker Language -> voir plus loin) qui sera exécuté lors de la création de la room. Cela peut s'avérer utile pour affecter des valeurs à certaines variables de la room, pour créer de nouvelles instances, etc. Il est important de bien comprendre précisément ce qui se passe lorsque vous appelez une room dans le jeu.
- En premier lieu, dans la room courante (si toutefois il y en a plusieurs), toutes les instances reçoivent un signal d'événement de fin de room. Ensuite, les instances non-persistantes sont enlevées (aucun événement de destruction n'est généré ici !).
- Ensuite, dans la nouvelle room, les instances persistantes de la précédente room sont ajoutées.
- Toutes les nouvelles instances sont créées et leurs événements de création sont exécutés (si cependant la room est non persistante ou n'a pas été visitée auparavant).
- Si c'est la première room du jeu et pour toutes les instances, l'événement 'game-start' (début de jeu) est généré.
- Puis, le code de création de la room est exécuté.
- Enfin, toutes les instances reçoivent le signal d'événement 'room-start' (début de room).
Ainsi, par exemple, les événements 'room-start' peuvent utiliser des variables initialisées par le code de création de la room et dans ce code, vous pourrez référencer les instances (aussi bien les nouvelles que celles persistantes) de la room.
Il existe aussi une option plus évoluée. Dans le menu pop-up qui apparaît lors d'un clic droit sur une instance tout en pressant la touche <Ctrl> , vous pourrez également indiquer du code de création pour une instance spécifique. Ce code est exécuté lorsque la room est affichée, juste avant que l'événement de création de l'instance ne soit exécuté. Ceci est très utile par exemple pour régler certains paramètres propres à une instance.
<< Traduction française par Philippe Ragni - (2005) >>
Alternative versions
Also available in:
Download helpfile