Tutorial d'apprentissage

des timelines et des paths

 

Par Conker et @NOTIZ@.

 

 

 

 

SOMMAIRE:

 

 

I – Les Timelines

a)                  Les actions D&D (dans Lib >> Main2 >> Timing)

b)                  Les fonctions en GML

c)                  Explication de la fenêtre

II – Les Paths

a)                  Explication de la fenêtre

b)                  Les actions D&D (dans Lib >> Move >> Move)

c)                 Les fonctions en GML

 



I – Les Timelines :

 


Sur ce tutorial nous allons apprendre à nous servir des timelines, les timelines (prononcer «taillme, laillne») sont des ressources qui n'apparaissent que dans le mode avancé de game maker :

 

 

Mais à quoi servent les timelines ? Voici un petit exemple.

 

Exemple :

Vous commencez le timeline grâce à une action D&D qui se trouve dans :

"Lib >> Main2 >> Timing >> Set a time line"

 

Une fois le timeline commencé, il compte les steps qui arrive après sa création, et effectue les actions situées dans des listes (créer par vos soins), quand il arrive à un certain moment

 

Exemple :

Sur la photo j'ai sélectionné le moment 300, cet à dire que les actions de cette liste vont être effectuer 300 steps après le commencement du timeline.

Je commence le timeline. Paffe ! 20 Steps plus tard les actions situées dans la liste de la position 20 sont effectuées. Paffe ! 5 Steps plus tard (position 25) les actions de la position 25 sont effectuées et ainsi de suite.

 

 

A)   Les actions D&D (dans Lib >> Main2 >> Timing) :



Set a Timeline

Pour commencer un timeline. Sélectionner le et indiquer la position (d'habitude on met 0 mais vous pouvez sélectionner par exemple 80 pour faire comme si cela commençais à partir de cette position).

 


Set a Timeline position

Changer la position du timeline actuel, si aucun timeline n'est en cour pour l'objet, il ne se passera rien. Je vous rappelle que la position, c'est le « numéro » du step ou en est le timeline (en plus de position on peut dire aussi « moment »).

 
 

B) Les fonctions en GML :

 

Voici les différentes fonctions en gml sur les timelines (tiré de l'aide GM en français) :

timeline_index : Index de la ligne de temps associée à l'instance. Vous pouvez modifier cet index pour utiliser une position particulière de la ligne de temps. Réglez cet index à -1 pour arrêter l'utilisation de la ligne de temps affectée à l'instance.
timeline_position : Actuelle position de la ligne de temps. Vous pouvez modifier la position afin de sauter ou répéter certaines parties de la ligne de temps.
timeline_speed : Habituellement, la position de la ligne de temps est incrémentée de 1à chaque step. Vous pouvez changer cette valeur en affectant un autre montant à cette variable. Vous pouvez utiliser des nombres réels comme 0.5. Si la valeur est plus grande que un, plusieurs moments pourront survenir pendant le même step. Ils seront tous traités dans le bon ordre et aucune action ne sera sautées.

timeline_exists(ind) : Indique si la ligne de temps d'index ind existe.
timeline_get_name(ind) : Retourne le nom de la ligne de temps d'index ind.timeline_add() : Ajoute une nouvelle ligne de temps. La fonction retourne l'index de la ligne de temps créée.
timeline_delete(ind) : Efface la ligne de temps d'index ind. Soyez certain cependant qu'aucune instance n'utilise cette ligne de temps et ce dans chacune des rooms.
timeline_moment_add(ind,step,codestr) : Ajoute une action (code) à la ligne de temps ind au step du moment. codestr contient le code pour les actions. Si le step n'existe pas, il sera créé. Vous avez ainsi la possibilité d'ajouter plusieurs actions de code pour un même moment.
timeline_moment_clear(ind,step) : Vous utiliserez cette fonction pour effacer toutes les actions d'un moment particulier.

 

 

C) Explication de la fenêtre :


Pour créer un timeline, il vous suffit de créer les moments et de mettre les actions D&D en les glissant dans la liste comme pour les objets.

Sur la fenêtre de ‘properties’ du timeline, vous voyer les libs apparaitre.


Voici une petite explication des boutons du time line :

(Ajout/Suppression/Modification des positions)

 

Add = Pour ajouter une nouvelle position

Change = changer la position sélectionné actuellement mais pas les actions

Delete = effacer la position ainsi que toute c'est actions

Duplicate = copier les actions de la positions sélectionné dans une nouvelle position que vous aller créer.

Shift = Ajouter des steps a des positions.

Merge = mélanger les actions d'une position dans une autre position

Ok = fermer la fenêtre est sauvegarder les paramètres.

 

Final :

Pourquoi utiliser les timelines ?

Pour par exemple créer des cinématiques, générer la créations des ennemies, il y a plein de moyen, c'est mieux que d'utiliser les alarms, exemple pour un scrolling shooter, faire un timeline avec des positions alternative tous les 30 steps par exemple, et à chaque position sa créer un ennemi aléatoirement dans la map, sa génère les ennemies, vous pouvez aussi faire des variantes :

vers la fin vous mettez par exemple tous les 10 steps, comme sa les ennemies se créer plus vite et c'est de plus en plus dur. Bref l'utilisation des timelines vous facilitera surement la tâche pour certaine(s) chose(s), sur l'écran dans mon jeu par exemple j'en utilise beaucoup !

 

II – Les Paths :

 


Les paths (prononcer «pass») sont des ressources formant des chemins que les objets pourront suivre. Path signifie 'chemin' en anglais, les paths n'apparaissent que dans le mode avancé de game maker.

 

Donc les paths sont des chemins que les instances vont suivre.

Cliquer sur l'icone pour ajouter des paths et une fenêtre de ‘properties’ apparaitra.

 

 

A) Explication de la fenêtre :

 

Toolbar :

 

Case coché : Sauvegarder et fermer la fenêtre.

Flèche : enlever ou ajouter la dernière action effectuer.

Page cornu : effacer le path.

Double flèches : inverser le path (le dernier point devient le premier et le premier devient le dernier.

Quadruple flèches : déplacer tous les points du path en même temps.

Flèches horizontales : inverser la coordonnée X de chaque point du path.

Flèche verticales : inverser la coordonnée Y de chaque point du path.

Flèche en rotation : tourner le path.

Flèche étiré : étirer le path.

Flèche haut, bas, droite, gauche : avance la vue dans la direction souhaitée.

Croix : centrer la vue sur le point principale du path.

Snap X, Snap Y : entrer le nombre de pixel qui sépare chaque colonnes et lignes de la grille.

Grid : cocher la case pour afficher la grille.

Indiquer une room : afficher les tiles, les backgrounds et les objets d'une room pour se repairer.

 

 

Rectangle de gauche :

 

Name : entrer le nom du path (qui apparaitra dans la liste des paths).

Liste : Ici se trouve la liste des points formant le path, chaque ligne est un point, il est préciser la position x, y et sa vitesse.

Case ADD : ajouter un point.

Case INSERT : insérer un point par dessus celui sélectionné.

Case  DELETE : effacer le point sélectionné.

X: la position x du point sélectionné.

Y: la position y du point sélectionné.

sp: la vitesse relative du point*

 

*La vitesse relative à un point est la vitesse que l'on va ajouter à la vitesse initial l'objet qui parcoure le path quand celui-ci passera par le point.

 

Connexion kind: indiquer le mode de fixation des lignes entre les points, choisissez *Straight lines* pour un path de forme droite et choisissez Smooth curve pour un path de forme arrondi.

 

Closed : cocher cette case si vous voulez que le path soit fermé ou que le dernier point soit raccordé au premier.

 

Precision : indiquer avec quel précision (de 1 a 9) vous voulez relier les points avec les lignes.

 

 

B) Les actions D&D (dans Lib >> Move >> Move) :

 

 


Set a path for the instance

Grâce à cet action vous pourrez faire en sorte que l'objet suivra le path, le point d'origine du sprite sera le point qui touchera le path, mais on ne verra pas le path. Indiquer le path, la vitesse, l'action à exécuter à la fin du path et enfin si le path commencera relativement à l'instance.

 

End the path for the instance

Cet action stop l'instance qui suis un path actuellement.

 


Set the position on the path

Changer la position de l'instance sur le path quel parcoure actuellement, la position doit être comprise entre 0 et 1, il faut donc utiliser les nombres décimal comme 1,5 ou 1,25.

 


Set the speed for the path

Changer la vitesse à laquelle l'instance parcoure le path actuellement.

 

 

C) Les fonctions en GML :

 

Voici les différentes fonctions en gml sur les paths (tiré de l'aide GM en français) :

 

path_start(path,speed,endaction,absolute) : Débute l'exécution du chemin pour l'instance courante. La valeur path correspond au nom du chemin à suivre par l'instance. La valeur speed est la vitesse à laquelle le chemin doit être parcouru. Une vitesse négative signifie que l'instance se déplace en sens inverse le long du chemin.

path_end() : Suspend le parcours du chemin pour l'instance courante.
path_index : Index du chemin actuel suivi par l'instance. Il ne vous est pas possible de le modifier directement mais est utilisé par la fonction ci-dessus.
path_position : Position du chemin actuel. 0 est le début du chemin tandis que 1 correspond à la fin. La valeur doit être comprise entre 0 et 1.
path_positionprevious : Position précédente du chemin actuel. On l'utilise par exemple dans les événements de collision pour paramétrer la position du chemin à sa position précédente.
path_speed : Vitesse (en pixels par step) à laquelle le chemin doit être parcouru. Utilisez une vitesse négative pour inverser le sens du déplacement.
path_orientation : Orientation (sens contraire des aiguilles d'une montre) vers laquelle le chemin est dirigé. 0 correspond à l'orientation normale du chemin.
path_scale : Mise à l'échelle du chemin. Augmentez cette valeur pour créer un chemin plus long. 1 est la valeur par défaut.
path_endaction : L'action à exécuter en fin de chemin. Vous pouvez utiliser les valeurs indiquées ci-dessus.

Final :

L'utilisation des paths seras très utile, c'est plus facile que de faire un chemin en utilisant les alarms pour changer de direction... Pour faire des mouvements d'ennemies, des déplacement RPG et plein d'autre chose encore !

Bonne chance pour tous vos projets en cours !

Conker

@NOTIZ@

Traduction française de l’aide Game-Maker par Philippe Ragni