tama Admin
Nombre de messages : 12376 Age : 32 Localisation : DTC ? :triso: Humeur : =) items : o Personalized field : huh ? oO Réputation : 3 Points : 9427 Date d'inscription : 08/08/2007
Profil TI: 84+, 89 tita, 89 tita TO: infini :p Spécialité: C 68k
| Sujet: Gestion d'événements ... Lun 06 Juil 2009, 17:18 | |
| tiens, gris c'est une nouvelle couleur pour le titre du sujet ?Bon, réfléchissage (oui, je sais que c'est pas français %)) sur le codement (idem) d'un gestionnaire événementiel (y en a quelques-uns qui ont dû tomber à la renverse en lisant ça ^^, je ne prends aucun frais d'hôpital ou autre :p)Le but du jeu ici est de pouvoir gérer des différents événements qui peuvent se produire, un peu comme les déclencheurs sur Age of Empires par exemple quand on crée des scénarios. Pour les incultes (un jeu comme ça ça se rate pas !) c'est des événements particuliers qui créent des effets (créer des unités, afficher un message ...) Donc ici y aurait un fichier associé à une carte (enfin, ça c'est une autre histoire ...) qui regrouperait donc les différents événements pourrant se produire La structure serait un truc du genre x00 pour une condition (remplacer x par un nombre) x01..x99 pour l'effet lié à la x ème condition Par exemple : 100 TIMER 0 //Début du jeu (chronomètre à 0) 101 ADD_UNIT 1,5,2560 //Crée l'unité n°1, 5 fois, toutes les 10 secondes 200 ON_BOARD 5 //5 unités sur le terrain 201 TEXT "Cadeau !" //affiche un message 202 GIVE 500 //donne 500 de monnaie 203 ADD_TOWER 5 //ajoute une tour n°5, à placer sur le terrain 300 ON_KILL 5,0 //5 tués depuis le début (2ème argument : chronomètre à 0) 301 WIN //gagné :)
Voilà pour la description, maintenant les questions : 1. Une idée d'un algorithme pour pouvoir lire les conditions/effets ? ça doit pouvoir être exécuté assez rapidement (en C, enfin éviter de parcourir tout le texte à chaque fois si possible) ... 2. Idées de conditions/effets qu'il pourrait y avoir ? Pour le 2, voici un début de liste, que je compléterais avec vos idées : en gras nom + arguments, ensuite l'effet, [..] pour un argument facultatif Conditions............................................
| Effets.....................................................
| TIMER x[,d] : le chronomètre est à x depuis d ON_BOARD x : il y a x unités sur le terrain ON_KILL x[,d] : x unités ont été tuées depuis d ON_PASS x[,d] : x unités sont passées jusqu'au bout [to be completed ...]
| WIN : victoire immédiate LOSE : défaite immédiate ADD_UNIT id[,loop][,int] : crée l'unité id, loop fois tous les tick tests ADD_TOWER id : crée la tour id, à placer sur le terrain par le joueur TEXT message : affiche un message GIVE qty : donne qty de monnaie au joueur REMOVE_UNIT id : retire l'unité id du terrain REMOVE_TOWER id : retire la tour id du terrain SET_ACTIVE dec: active le déclencheur dec (utile pour faire des boucles) MOVE_UNIT id, x, y : déplace l'unité id vers la case x,y [to be completed ...]
|
Pour info, 1 seconde = 256 ticks Chaque unité qui arrive sur le terrain a un id unique qui lui est attribué pour ensuite pouvoir lui appliquer des effets ^^ |
|