Accueil | Personnaliser | Blog | Extras | Log In | Information
Manuel | D&D icons | GML Parser | Archives | Ville Iso
Username: Password:  
à propos | Caractéristiques | Directory | Bannières | Contacter

Création de jeux avec Game Maker
Création de jeux avec Game Maker

Les Evénements

Game Maker utilise une approche temps réel pour la gestion des événements. Cela fonctionne de la manière suivante. Lorsque quelque chose se produit dans le jeu, les instances des objets reçoivent des événements (sorte de messages indiquant que quelque chose s'est produit). Les instances peuvent alors réagir à ces messages en exécutant certaines actions. Pour chaque objet, vous devrez donc indiquer à quels événements ils doivent répondre et quelles actions ils doivent accomplir quand l'événement survient. Cela peut sembler compliqué mais c'est en fait très simple. Premièrement, pour la plupart des événements, les objets n'auront rien à faire de particulier. En ce qui concerne les événements où une action est nécessaire, vous utiliserez une approche de type 'drag-and-drop' (sélectionner & déposer) très simple pour spécifier les actions à accomplir.

Au milieu de la fenêtre des propriétés de l'objet, se trouve une liste des événements pour lequels l'objet doit réagir. Au départ, cette liste est vide. Vous pourrez ajouter des événements en appuyant sur le bouton Add Event. Un écran apparaîtra avec tous les différents types d'événements possibles. Vous sélectionnerez ici l'événement que vous souhaitez ajouter. Parfois, un menu s'affichera avec des choix supplémentaires. Par exemple, pour les événements clavier, vous devrez choisir la touche concernée par l'événement. En dessous, vous trouverez une liste compléte des différents événements avec leur description. Un seul événement de la liste peut être sélectionné à la fois. C'est l'événement sur lequel nous sommes en train de travailler. Vous pouvez changer l'événement sélectionné en cliquant dessus. A droite apparaissent toutes les actions symbolisées par de petites icônes. Elles sont regroupées sous forme d'onglets. Au prochain chapître, nous verrons les descriptions de toutes ces actions et ce qu'elles réalisent. Entre les événements et les actions, il y a la liste d'actions. Cette liste contient les actions que l'événement courant peut accomplir. Pour ajouter des actions à la liste, déposez (drag) une action à l'aide de la souris dans la liste des actions apparaissant sur la droite. Elles seront placées chacune l'une en dessous de l'autre, accompagnées d'une courte description. Pour chaque action, il vous sera demandé de fournir quelques paramètres. Ils seront également abordés dans le chapître suivant. Après avoir ajouté quelques actions, l'affichage ressemblera à ceci :

/library/manual/images/form_event_panel.jpg

Vous pouvez maintenant ajouter des actions à d'autres événements. Cliquez sur l'événement concerné avec le bouton gauche de la souris pour le sélectionner puis déposer (drag) des actions dans la liste.

Vous pouvez modifier l'ordre des actions de la liste toujours en utilisant la fonction 'drag-and-drop' (sélectionner & déposer). Si vous maintenez la touche <Alt> lors d'un déplacement, vous créerez une copie de l'action. Vous pouvez même utiliser la fonction 'drag-and-drop' à l'intérieur des listes d'actions de différents objets. Lorsque vous cliquez avec le bouton droit de la souris sur une action, un menu apparaît dans lequel vous pourrez effacer l'action sélectionnée (peut être également réalisé en utilisant la touche <Del>) mais aussi copier ou coller des actions (vous pouvez aussi sélectionner plusieurs actions en même temps pour les couper, les copier ou les effacer en maintenant les touches <Shift> ou <Ctrl>. Pressez <Ctrl><A> pour sélectionner toutes les actions). Quand le curseur de la souris reste de manière prolongée sur une action, une plus longue description de l'action s'affiche. Voir le prochain chapître pour plus d'informations sur les actions.

Pour effacer l'événement actuellement sélectionné ainsi que toutes ses actions, appuyez sur le bouton Delete. (les événements sans action seront automatiquement supprimés quand vous fermerez la fenêtre. Aussi, il n'est pas nécessaire de procéder manuellement à leur effacement). Si vous souhaitez assigner des actions à un événement différent (par exemple parce que vous souhaitez utiliser une touche différente pour celles-ci), appuyez sur le bouton Change puis sélectionnez le nouvel événement souhaité (l'événement ne doit pas être déjà défini !). En utilisant le menu apparaissant lors du clic droit de la souris sur la liste d'événements, vous pourrez ainsi dupliquer un événement, ce qui en final, ajoutera un nouvel événement avec les mêmes actions.

Comme indiqué ci-dessus, pour ajouter un événement, pressez le bouton Add Event. La fenêtre suivante s'affichera :

/library/manual/images/form_event_selector.jpg

Vous pourrez ici sélectionner l'événement que vous souhaitez ajouter. Certaines fois, un menu s'affichera avec des choix complémentaires. Voici une description des différents événements. (rappelez-vous que vous ne devriez normalement n'en utiliser que très peu).

create Create event (Evénement à la création)
Cet événement survient lorsque l'instance de l'objet est créée. Cela est utilisé habituellement pour paramétrer l'instance dans ses mouvements et/ou donner une valeur aux variables de l'instance.

destroy Destroy event (Evénement à la destruction)
Cet événement arrive quand l'instance est détruite. Pour être plus précis, cela survient juste avant qu'elle ne soit détruite, ainsi l'instance existe encore lorque l'événement surgit ! En principe, cet événement n'est pas utilisé mais vous pouvez néanmoins l'employer par exemple pour modifier le score ou encore pour créer un autre objet.

timer Alarm events (Evénements d'alarme)
Chaque instance a 12 alarmes chronomètres. Vous pouvez paramétrer les alarmes chronomètres en utilisant certaines actions (voir chapître suivant). L'horloge effectue alors un compte à rebours et déclenche l'événement d'alarme quand le chronomètre arrive à 0. Pour mentionner les actions à effectuer pour une alarme donnée, vous devez en premier lieu sélectionner cette dernière dans le menu. Les alarmes chronomètres sont très utiles. Vous pouvez les utiliser afin que certaines choses surviennent de temps en temps. Par exemple, un monstre pourra changer de direction tous les 20 steps (20 unités de temps). Dans ce cas, une des actions de l'événement devra de nouveau refixer la valeur de l'alarme chronomètre.

step Step events (Evénements d'étape)
L'événement step (étape) survient à chaque étape du jeu. Vous pouvez ici mettre des actions qui ont besoin de s'exécuter en permanence. Par exemple, dans le cas où un objet doit en suivre un autre, vous pourrez ici adapter la direction du mouvement vers l'endroit où se trouve l'objet à suivre. Soyez néanmoins prudent avec ce type d'événement. Ne placez pas trop d'actions complexes dans l'événement step des objets où il existe plusieurs instances de ces derniers. Cela pourrait ralentir considérablement le jeu. Il existe trois événements step différents. En temps normal, vous ne devriez en avoir besoin que d'un seul. Mais, à l'aide du menu, vous pouvez aussi sélectionner l'événement début de step et l'événement fin de step. L'événement début de step est exécuté au début de chaque step, avant que tout autre événement ne soit pris en compte. L'événement normal step est exécuté juste avant que les instances soient placées à leurs nouvelles positions. Enfin, l'événement fin de step est exécuté à la fin du step, juste avant l'étape d'affichage. Ceci est souvent utilisé pour changer un sprite en fonction de sa direction actuelle.

collision Collision events (Evénements de collision)
Lorsque deux instances entrent en collision (cela signifie que leurs sprites se chevauchent), un événement de collision est généré. En fait et pour être plus précis, deux événements de collision surviennent alors, un pour chacune des instances. L'instance peut réagir à l'événement de collision. A cet effet, à partir du menu, sélectionnez l'objet pour lequel vous souhaitez définir l'événement de collision. Puis placez vos actions à cet endroit.

Il existe une différence lorsqu'une instance entre en collision avec un objet solide ou non solide. Première chose, quand il n'y a aucune action de définie dans l'événement de collision, rien ne se passera. L'instance courante continue simplement son déplacement; même si l'autre objet est de type solide. Lorsque l'événement de collision contient des actions, il peut survenir les choses suivantes :

Si l'autre objet est de type solide, l'instance est replacée à son ancienne position (c'est à dire à la position avant la collision). Ensuite l'événement est exécuté. Finalement, l'instance est déplacée à sa nouvelle position. Si, par exemple, l'événement inverse la direction du déplacement, l'instance rebondit alors contre le mur sans s'arrêter. S'il y a toujours collision, l'instance est replacée à sa position précédente. Puis elle stoppe effectivement son déplacement.

Si l'autre objet n'est pas de type solide, l'instance n'est pas replacée à sa position précédente. L'événement est simplement exécuté avec l'instance à sa position courante. Ainsi, il n'y a donc pas de seconde vérification de collision. Si vous réfléchissez bien, c'est logiquement ce qui doit se passer. Parce que l'objet n'est pas de type solide, nous pouvons donc simplement le traverser. L'événement nous indique ce qui vient de se passer.

Les événements de collision peuvent être utilisés pour divers usages. Les instances peuvent les utiliser pour rebondir contre des murs. Vous pouvez les employer par exemple pour détruire des objets quand leurs instances sont touchées par une balle ou encore un obus.

keyboard Keyboard events (Evénements clavier)
Lorsque le joueur presse une touche, un événement clavier apparaît pour toutes les instances de tous les objets. Il existe un événement différent pour chaque touche. Dans le menu, vous pouvez choisir la touche pour laquelle vous souhaitez définir un événement clavier afin d'y déposer des actions. De manière générale, seuls quelques objets nécessitent des événements pour ne gérer finalement que quelques touches. Vous obtenez un événement à chaque step tant que le joueur appuie sur la touche. Il existe deux événements clavier spéciaux. L'un d'eux s'appelle <No key>. Cet événement survient à chaque step lorsqu'aucune touche n'est pressée. L'autre se nomme <Any key> et arrive quand une touche est pressée. Lorsque le joueur presse sur plusieurs touches, les événements se produisent pour chacune des touches. Veuillez noter que les touches du clavier numérique renvoient des événements que lorsque <NumLock> est en fonction.

mouse Mouse events (Evénements souris)
Un événement souris est visible par une instance lorsque le curseur de la souris survole le sprite représentant cette instance. Selon le bouton souris pressé, vous pouvez obtenir l'événement aucun bouton, bouton gauche, bouton droit ou bouton du milieu. Les événements souris sont créés à chaque step tant que le joueur maintient le bouton de la souris enfoncé. Les événements souris presse-bouton n'apparaissent que lorsqu'un bouton de la souris est pressé. Les événements relache-bouton sont générés seulement quand le bouton est relâché. Veuillez noter que ces événements apparaissent uniquement quand la souris se trouve au dessus d'une instance. Si vous souhaitez par contre effectuer une action lorsque l'on appuie ou relâche un bouton de la souris à un endroit arbitraire (NDT : donc indépendant d'une instance), utilisez les événement généraux de la souris que l'on peut trouver dans un des sous-menu. Il existe égalemnt deux événements spéciaux pour la souris. L'événement souris à l'entrée survient quand la souris pénètre dans l'instance. L'événement souris à la sortie apparaît lorsque la souris quitte l'instance. Ces événements sont habituellement utilisés pour changer d'image ou jouer certains sons. Les événements souris de mouvement de roulette vers le haut ou vers le bas surviennent lorsque l'utilisateur actionne la molette de la souris dans l'une des deux directions. Enfin, il existe un certain nombre d'événements concernant le joystick. Vous pouvez indiquer des actions pour les quatre directions principales du joystick (en diagonale, deux événements se produisent). Vous pouvez aussi définir des actions prenant en compte simultanément jusqu'à 8 boutons du joystick. Vous pouvez ainsi gérer à la fois le premier et un éventuel second joystick.

other Other events (Autres événements)
Il y a d'autres événements pouvant être utiles dans certains jeux. Ils sont accessibles à partir de ce menu. Les événements disponibles sont les suivants :

  • Outside (En dehors) : Cet événement survient lorsque l'instance se situe complètement hors de la room. C'est généralement à ce moment-là que l'on décide de détruire l'instance.
  • Boundary (Au bord) : Cet événement apparaît quand l'instance touche les bords de la room.
  • Game start (Au début du jeu) : Cet événement concerne toutes les instances de la première room au lancement du jeu. Cela survient avant que la room lance l'événement (voir ci-dessous) mais après les événements à la création (Creation events) des instances de la room. Cet événement est défini typiquement dans un seul objet "controller" et s'utilise pour démarrer une musique de fond, pour initialiser des variables ou encore charger des données.
  • Game end (A la fin du jeu) : Cet événement concernent toutes les instances lorsque se termine le jeu. Comme d'habitude, un seul objet définit cet événement. On l'utilise par exemple pour stocker des données dans un fichier.
  • Room start (Au lancement de la room) : Cet événement concerne toutes les instances déjà présents dans la room quand celle-ci démarre. Ceci se produit après les événements à la création.
  • Room end (A la fin de la room) : Cet événement concerne toutes les instance existantes lorsque la room s'achève.
  • No more lives (Plus de vies) : Game Maker intégre un système de gestion des vies dans le jeu. Il existe une action pour fixer et changer le nombre de vies. Lorsque le nombre de vies devient inférieur ou égal à 0, cet événement apparaît. On l'utilise souvent pour finir ou relancer le jeu.
  • No more health (Plus de santé) : Game Maker comprend un système de gestion de santé du joueur. Il y a une action pour régler et changer la santé du joueur. Quand la santé est inférieure ou égale à 0, cet événement survient. Habituellement utilisé pour réduire le nombre de vies ou pour relancer le jeu.
  • End of animation (Fin d'animation) : Comme mentionné ci-dessus, une animation est constituée d'un certain nombre d'images affichées l'une après l'autre. Lorsque la dernière image est affichée, on boucle en réaffichant la première. Cet événement apparaît précisément à ce moment. Ceci peut être utilisé par exemple pour changer l'animation ou pour détruire l'instance.
  • End of path (Fin de chemin) : Cet événement survient lorsque l'instance suit un chemin et que la fin de chemin est atteinte.
  • User defined (Evénement défini par l'utilisateur) : 16 événements utilisateur peuvent être définis. Ils ne surviennent généralement jamais sauf si vous-même les invoquez dans un programme.

draw Drawing event (Evénement à l'affichage)
Les instances, lorsqu'elles sont visibles, dessinent leur sprite sur l'écran à chaque step. Quand vous spécifiez des actions dans l'événement d'affichage, le sprite n'est pas dessiné mais seules ces actions sont exécutées. Ceci peut être utilisé pour dessiner autre chose qu'un sprite ou encore effectuer des changements dans les paramètres du sprite. Un certain nombre d'actions d'affichage existent, destinées principalement aux événements à l'affichage. Veuillez noter que les événements à l'affichage sont uniquement exécutés lorsque les objet sont visibles. Notez également qu'indépendamment de ce que vous dessinez, les événements de collision ne concernent que le sprite associé à l'instance.

keypress Key press events (Evénements si touche pressée)
Cet événement est similaire à l'événement clavier mais survient une seule fois lorsqu'une touche est pressée, plutôt qu'en continu. Ceci est utile quand vous souhaitez une action ne devant survenir qu'une unique fois.

keyrelease Key release events (Evénements si touche relâchée)
Cet événement est semblable à l'événement clavier sauf qu'il se produit une unique fois lors du relâchement d'une touche et non de manière continue.

Dans certains cas, il est important de bien comprendre l'ordre dans lequel Game Maker traite les événements. L'ordre d'exécution est le suivant :

  • Begin step events (Evénements de début de step)
  • Alarm events (Evénements alarme chronomètre)
  • Keyboard, Key press, and Key release events (Evénements clavier, si touche pressée et si touche relâchée)
  • Mouse events (Evénements de la souris)
  • Normal step events (Evénements step normal)
  • (now all instances are set to their new positions) (toutes les instances sont placées désormais à leurs nouvelles positions)
  • Collision events (Evénements de collision)
  • End step events (Evénements de fin de tep)
  • Drawing events (Evénements à l'affichage)

La création, la destruction et les autres événements ne sont traités que lorsque des choses les concernant surviennent.












<< Traduction française par Philippe Ragni - (2005) >>

Search Search


Alternative versions Alternative versions

You can also read this manual on one single long page (± 1.5 mb)

Also available in: Dutch English German

ZIP Download helpfile

Annonces Annonces

GameMaker Manual