Skip to content

Gestion des tâches

Gentilhomme edited this page Aug 29, 2014 · 3 revisions

Task

Le système de tâche est une metatable qui s’exécute automatiquement dans la boucle update et qui va utiliser celle-ci pour réaliser des calculs ou des opérations dans un temps défini. Par exemple pour animer un menu qui bouge d'un point A à B ou bien même encore une génération de terrains où un calcul lourd qu'elle va allonger sur un temps plus long pour éviter que le programme ne se bloque.

Dépendances

  • Aucune

Un exemple simple

Dans l'exemple ci-dessous, la tâche va écrire dans la console i 1 pendant 60 millisecondes. (une boucle update). Donc cette tâche sera chargée d'afficher 0->60.

TASK:New("BoucleTest",60,function(T)
    print(T.loop)
end)
-- Rapport d’exécution 
0
1 
2
...
59
60

Connaître l'architecture du tableau qui contient les tâches

OpenTask[i] = {
    name = name or "",
    loop = 0,
    max_loop = loop or 1,
    callback = callback or Nil
}

Les functions disponibles

New(name,loop,callback)

Permets de définir une nouvelle tâche. La function callback peut prendre l'argument T (ou autres noms). C'est le tableau courant de la tâche.

Reverse(name)

Inverse l’exécution d'une tâche. (Très utile dans le cas d'une action qui peut faire des allers-retours entre une state A/B).

Update()

Commande vitale à mettre dans un behavior:update (elle s'exécute d'elle-même si vous précisez United() ou United.Core() )