[AS2] Augmenter la vitesse des fantômes de Pacman selon la difficulté du jeu.
poulibou
Messages postés4Date d'inscriptionmardi 27 février 2007StatutMembreDernière intervention15 septembre 2009
-
15 sept. 2009 à 13:09
craloo
Messages postés5Date d'inscriptionmercredi 21 décembre 2005StatutMembreDernière intervention15 novembre 2009
-
15 nov. 2009 à 11:31
Sujet : [AS2] Augmenter la vitesse des fantômes de Pacman selon la difficulté du jeu.
Bonjour,
Me voila confronté à un problème à la fois technique et logique alors que je suis entrain de modifier un jeu Pacman à partir de sources existantes(réalisées en actionScript 2).
DESCRIPTION DU PROBLEME : Sur le terrain, les fantômes se décalent au fur et à mesure pour se hurter dans les murs, et par
finalement provoquer des bugs comme par exemple voir un des fantômes sortir du terrain.
Le problème est apparu au moment ou j'ai choisi d'ajouter une nouvelle difficulté (les fantômes vont de plus en plus vite
selon le level du jeu)
Dans le jeu d'origine, il n y a que deux vitesses différentes pour les fantômes : "ghFast" et une vitesse plus lente. Elles
sont décrites par ce code :
// Control Ghost speed (pair must be multiple of 12, i.e. 4x(2+1) or 2x(5+1) )
if (ghFast) {
ghStep = 4;
ghPosMax = 2;
}
else {
ghStep = 2;
ghPosMax = 5;
}
Le nombre 12 cité dans les commentaires équivaut à la taille en pixel d'un bloc sur le terrain ( de taille 28*31 blocs).
Chaque blocs étant décrit par un caractère comme dans exemple ci-dessous.
La vitesse des fantômes est donc liée à la taille du terrain.
Si j'ai bien compris : la taille d'un bloc fait 12 pixels. Par tour, le fantôme ne peut se déplacer que d'un bloc. (Le moteur
de jeu tournant en boucle, j'entend par "un tour", une répétition de cette boucle). donc on utilise ghStep pour indiquer la
taille du pas d'un fantôme et ghPosMax pour indiquer le nombre maximum de pas que le fantôme pourra faire pendant ce tour.
Un fantôme rapide fera plus de "pas" (ghStep 4) et en aura moins à faire (ghPosMax2) pour arriver au bloc suivant (12px);
le couple ghStep et ghPosMax doit toujours être égal à 12, car sinon, les fantômes se décalent progressivement du chemin pour
se hurter dans les murs.
Dans mon propre code, j'ai ajouté la fameuse difficulté (pour changer la vitesse des fantômes à chaque niveau).
A chaque nouveau level, la difficulté s'incrémente, devenant de plus en plus petite.