Alors comme ça tu veux que ton jeu soit peuplé de plein de types de personnage ? Très bonne idée ! Mais pour pouvoir les placer il va te falloir faire le hack pour modifier ton niveau et pour rajouter des images. Si tu l'as déjà fait, alors passons à la suite !
Placer les nouveaux personnages
Puisque tu as déjà modifié ton niveau, retourne dans le script level.js
, et retrouve la fonction levelEditor()
, puis rajoute tes nouveaux personnages avec de nouveaux nombres que tu n'as pas encore utilisés, comme 9
, 10
ou 11
.
Par exemple, ici j'ai choisi le 9
.
function levelEditor() {
// cette fonction initialise les couloirs et les éléments du niveau
let grid = [
[ 7 , 1 , 1 , 1 , 1 , 1 , 1 , 8 ],
[ 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 ],
[ 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 ],
[ 1 , 2 , 1 , 3 , 1 ,9, 1 , 1 ],
[ 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 ],
[ 1 , 1 , 1 , 1 , 1 ,9, 1 , 1 ],
[ 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 ],
[ 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 ],
];
/*
0 = mur
1 = passage
2 = ennemi 1
3 = ennemi 2
4 = objet 1
5 = objet 2
6 = objet 3
7 = départ
8 = trésor
9 = ennemi 3
*/
return grid ;
}
Maintenant que tu as défini l'emplacement des nombres, il va falloir expliquer à ton programme à quoi ils correspondent.
Dans le même script, trouve la fonction placeItem()
. C'est elle qui affecte un élément à chaque emplacement que tu as défini. Rajoutes-y cette ligne.
function placeItem( n , x , y ){
// place les éléments
let p = createVector(x,y);
let b = isFloating;
if (n==0) rooms[x][y].path=false; // passages
if (n==1) rooms[x][y].path=true; // passages
if (n==2) append( enemys , new enemy( p , 0 , b[0] ) ); // ennemi 1
if (n==3) append( enemys , new enemy( p , 1 , b[1] ) ); // ennemi 2
if (n==4) append( items , new item ( p , 1 ) ); // objet 1
if (n==5) append( items , new item ( p , 2 ) ); // objet 2
if (n==6) append( items , new item ( p , 3 ) ); // objet 3
if (n==7) playerPos=[ p , p ]; // départ
if (n==8) append( items , new item ( p , 0 ) ); // trésor
if (n==9) append( enemys , new enemy( p , 2 , false ) );
}
N'oublie pas de remplacer le 9
, par le nombre que tu as choisi.
Tu remarqueras que dans la ligne j'ai demandé de créer un ennemi de type 2
, les précédents ennemis étaient de type 0
et 1
, j'ai donc choisi de créer un nouveau type, le type 2
. Libre à toi d'en créer d'autres !
Si tu veux que ton nouveau personnage apparaisse à dans ton jeu en flottant en l'air, remplace le false
par true
.
Donner une image à tes nouveaux personnages
Maintenant j'imagine que tu aimerais que ton nouveau personnage ai une autre apparence que les précédents. Il va donc falloir demander à ton programme de l'afficher différemment.
Dans le script enemy.js
, trouve la fonction enemyImage()
et ajoutes-y ces deux lignes.
function enemyImage(thisEnemy,r){
// affiche les objets
let type = thisEnemy.type;
let img = [ lee ] ;
let face = (r%2==0) ;
if (type == 0 && face) img = enemyImages[0];
if (type == 0 && !face) img = enemyImages[1];
if (type == 1 && face) img = enemyImages[2];
if (type == 1 && !face) img = enemyImages[3];
if (type == 2 && face) img = enemyImages[4];
if (type == 2 && !face) img = enemyImages[5];
return img ;
}
Remplace ensuite les 2
le type de personnage que tu as choisi, puis les 4
et 5
dans enemyImages[4]
et enemyImages[5]
par le numéro des images du personnag de face et de profil dans la liste enemyImages
(voir ajouter des images)
Et voilà. Il ne te reste plus qu'à aller rencontrer ton nouveau personnage dans ton niveau.