Création de jeux avec Game Maker
Actions de contrôle
Il y a un certain nombre d'actions avec lesquelles vous pouvez contrôler quelles autres actions doivent s'exécuter. La plupart de ces actions posent une question, par exemple si une position de l'écran est libre. Si la réponse est oui (true), l'action suivante est exécutée, sinon, l'action est sautée. Si vous souhaitez avoir plusieurs actions exécutées ou sautées selon le résultat, vous pouvez les placer dans un bloc d'instructions délimité par des actions de début et de fin de blocs. Il peut y avoir également une instruction else qui sera exécutée lorsque la réponse à la question est non. Ceci est un exemple typique :
La question posée ici teste si la position de l'instance actuelle est libre de collision. Si oui alors l'instance se déplacera dans la direction indiquée. Si ce n'est pas le cas, l'instance sautera à une position indiquée dans le bloc else.
Pour toutes les questions, il existe un champs nommé NOT. Si vous cochez ce champs, le sens de la question est inversé. C'est à dire que si par exemple la réponse à la question était vrai, alors elle deviendra faux et vice-versa.. Cela vous permet d'exécuter certaines actions dans le cas où le résultat de la question n'est pas vrai.
A la plupart des questions, vous pouvez indiquer ce qu'il devrait s'appliquer à toutes les instances d'un objet particulier. Dans ce cas, le résultat sera vrai si et seulement si le résultat est également vrai pour toutes les instances de l'objet. Par exemple, vous pouvez vérifier si la position légérement à droite d'un ensemble de balles est libre de collision.
Les questions et actions suivantes sont disponibles (veuillez noter qu'elles ont toutes une représentation sous forme d'icône et une couleur de fond différentes ce qui permet de les distinguer plus facilement entre elles).
If a position is collision free (Test si une position n'est pas en collision)
Cette question retourne vrai pour l'instance courante, placée à la position indiquée, si celle-ci ne génére pas de collision avec un objet.
Vous pouvez indiquer la position sous forme absolue ou relative. Vous pouvez aussi mentionner si seuls les objets solides ou encore tous les objets
doivent être pris en compte. Cette action est habituellement employée pour vérifier si l'instance peut se déplacer à un endroit précis.
If there is a collision at a position (Test s'il y a collision à cette position)
C'est l'action inverse de la précédente. Elle retourne vrai si l'instance courante, placée à une position donnée, entre en collision avec une autre
instance ou objet (toujours soit avec des objets solides uniquement ou encore avec tous les objets).
If there is an object at a position (Test si présence d'un objet à une position donnée)
Cette question retourne vrai si l'instance placée à une position donnée, rencontre une instance de l'objet indiqué.
If the number of instances is a value (Test si le nombre d'instances est égal à une certaine valeur)
Vous devez préciser un objet et un nombre. Si le nombre actuel d'instances de cet objet est égal au nombre donné alors la question retourne
vrai sinon elle retournera faux. Vous pouvez également effectuer le test si le nombre d'instances est plus petit ou encore plus grand
que la valeur fournie. On utilise ces tests afin de savoir si toutes les instances d'un type particulier ne sont plus présentes dans le jeu. Auquel cas,
ce sera souvent le moment de terminer le niveau ou le jeu.
With a chance perform next action (Avec une certaine probabilité d'effectuer la prochaine action)
Vous indiquez le nombre souhaité de côtés d'un dé qui sera ensuite lancé. Si le résultat du lancement du dé est 1 alors il sera retourné
vrai (true) et la prochaine action sera exécutée. Ceci est utile pour ajouter des actions aléatoires dans votre jeu. Par exemple, à chaque step, il vous
est possible de générer une bombe ou un changement de direction, le tout avec une certaine probabilité que l'événement se réalise. Plus le nombre
de faces du dé est grand, moins il y aura de chance que cela se réalise. Actuellement, vous pouvez utiliser des nombres réels. Par exemple, si vous
paramétrez le nombre de côtés à 1.5, la prochaine exécution sera exécutée deux fois sur trois. Utiliser un nombre inférieur à 1 n'a ici pas de sens
(NDT : en effet, mathématiquement parlant, cela reviendrait à dire que l'événement aurait plus de chance de se réaliser que l'occurence observée
de l'événement ce qui n'est pas possible).
If the user answers yes to a question (Si l'utilisateur répond oui à une question)
Vous posez une question. Une boîte de dialogue s'affiche avec un bouton yes (oui) et un bouton no (non). Le résultat sera
vrai (true) si l'utilisateur a répondu yes (oui).
If an expression is true (Si une expression est vérifiée)
C'est la condition la plus générale mais aussi la plus utilisée. Vous indiquerez ici une expression arbitraire.
Si l'expression renvoie la valeur vrai (true) (par exemple si un nombre est supérieur ou égal à 0.5), l'action suivante sera réalisée.
Voir ci-dessous pour obtenir plus d'informations sur les expressions.
If a mouse button is pressed (Si un bouton de la souris a été pressé)
Retourne vrai (true) si le bouton de souris indiqué est pressé. On utilise fréquemment ce test dans l'événement step. Vous pouvez
vérifier si un bouton de la souris a été pressé et dans l'affirmative, déplacer une instance à la position de la souris (utilisez l'action
"Aller à une position donnée" (jump to a given position) avec les valeurs mouse_x et mouse_y).
If instance is aligned with grid (Test si une instance est alignée avec la grille)
Retourne vrai (true) si la position de l'instance tient sur une grille. Vous indiquerez l'espacement horizontal et vertical de la grille.
Cela peut être très utile lorsque certaines actions, comme faire un demi-tour, ne sont possibles que si l'instance se trouve dans une position de la grille.
Start of block (Début de bloc)
Indique le début d'un bloc d'actions.
End of block (Fin de bloc)
Indique la fin d'un bloc d'actions.
Else (Sinon)
Après cette action, il y a les instructions suivant la clause else, qui seront exécutées quand le résultat à la question retourne faux (false).
Repeat next action (Répéter la prochaine action)
Cette action est employée pour répéter l'action suivante (ou bloc d'actions) un certain nombre de fois. Vous indiquerez simplement ce nombre.
Exit the current event (Quitter l'événement courant)
Quand cette action est utilisée, aucune autre action de cet événement ne sera désormais exécutée. On l'utilise généralement après une question.
Par exemple, lorsqu'une position est libre, il n'est pas nécessaire de faire quelque chose de particulier donc on quitte l'événement. Dans l'exemple
donné, les actions suivantes ne seraient exécutées qu'en présence d'une collision.
Si vous souhaitez davantage de contrôle sur le fonctionnement de votre jeu, vous pourrez utiliser le langage de programmation intégré (GML), décrit dans la 4 ème partie de cette documentation. Il vous apportera plus de flexibilité que l'emploi d'actions via l'interface graphique du logiciel. Il est d'utilisation facile mais surtout, il vous permettra l'usage de vos propres variables. Les actions suivantes ont trait à ce langage :
Execute a piece of code (Exécuter du code)
Lorsque vous ajoutez cette action, une fenêtre apparaît à l'écran dans laquelle vous pourrez taper des lignes de code qui seront ultérieurement
exécutées. Cela peut être de simples appels de fonction ou encore du code plus complexe. L'utilisation des actions sous forme de code n'est
envisageable que pour les petits programmes. Pour les plus gros projets, il est fortement recommandé d'utiliser les scripts qui font l'objet d'une
description dans la 2 ème partie de ce document.
Comment (Commentaire)
Utilisez cette action pour ajouter une ligne de commentaires à la liste d'actions.
La ligne est affichée en italique. L'ajout de commentaires vous aidera à vous souvenir de ce que doivent faire vos événements.
Cette action ne fait rien de particulier mais sachez que c'est tout de même une action.
Ainsi, si vous placez l'action après une action conditionnelle, ce sera l'action commentaire qui sera exécutée dans le cas où la condition est
vraie (true) (bien qu'elle ne fasse rien du tout).
Set the value of a variable (Fixer la valeur d'une variable)
Il existe de nombreuses variables intégrées dans le jeu. Avec cette action, vous pourrez les modifier.
Vous pourrez aussi créer vos propres variables et leur assigner des valeurs. Vous indiquerez le nom de la variable et la nouvelle valeur.
Si vous cochez la case Relative, la valeur sera ajoutée à la valeur actuelle de la variable. Veuillez noter que ceci n'est possible que
si la variable a déjà eu une valeur qui lui ait été affectée ! Voir ci-dessous pour en savoir davantage sur les variables.
If a variable has a value (Test si une variable a une certaine valeur)
Cette action vous permet de tester la valeur d'une variable particulière. Si la valeur de la variable est égale au nombre indiqué, la question
retournera vrai (true). Sinon, elle donnera faux (false). Vous pouvez également tester si la valeur d'une variable est inférieure ou
supérieure à une valeur mentionnée. Voir plus bas pour obtenir plus d'informations au sujet des variables.
Actuellement, vous pouvez également utiliser cette action pour comparer deux expressions.
Draw the value of a variable (Afficher la valeur d'une variable)
Avec cette action, vous pourrez afficher la valeur d'une variable à un endroit précis de l'écran. Veuillez noter que cette action ne peut être utilisée
que dans l'événement d'affichage d'un objet.
<< Traduction française par Philippe Ragni - (2005) >>
Alternative versions
Also available in:
Download helpfile