Tu veux piéger ton joueur avec un faux objet qui se transforme en personnage quand on l'approche? Excellente idée moussaillon, de quoi décourager les aventuriers qui voudraient s'approprier ton trésor.
Créer une fonction trap()
Pour commencer, nous allons créer une fonction va supprimer ton objet et créer un personnage à sa place, le tout avec un petit signal sonore !
Je t'en ai préparé une que tu peux coller dans le script item.js
.
function trap(thisItem) {
// remplace un objet par un personnage
const type = 0 ;
let e = new enemy( thisItem.pos , type , false ) ;
append( enemys, e );
items = supprObj( items , thisItem ) ;
fx[6].play();
savedTime=millis();
}
Change la valeur du variable type
dans la fonction pour choisir le type du personnage qui va apparaître.
const type = 0 ; // pour le personnage 0
const type = 1 ; // pour le personnage 1
Si ce personnage flotte en l'air plutot que de se déplacer au sol, modifie cette ligne en remplacant false
par true
.
let e = new enemy( thisItem.pos , type , true ) ;
Appeller la fonction
Maintenant, il nous reste à appeler cette nouvelle fonction au moment opportun.
Pour ça, trouve la fonction pick()
, toujours dans le script item.js
.
Cette fonction est appellée quand ton joueur rencontre un objet, pour chaque type d'objet elle renvoie vers une certaine fonction.
Si l'objet est de type 0
(le trésor) alors la fonction treasure()
est appelée,
pour les objets de type 1
, 2
et 3
, c'est la fonction pickItem()
, qui permet de ramasser l'objet en question.
Pour créer ton piège, choisi quel type d'objet va se transformer en personnage et remplace la fonction qui lui correspond par trap( thisItem )
.
Dans cet exemple j'ai choisi l'objet de type 3.
function pick( thisItem ){
// interaction du joueur avec les objets
// ici c'est l'objet 3 qui appellera la fonction trap()
let objet = thisItem.type ;
if ( objet == 0 ) treasure( thisItem ) ;
if ( objet == 1 ) pickItem( thisItem ) ;
if ( objet == 2 ) pickItem( thisItem ) ;
if ( objet == 3 ) pickItem( thisItem ) ;
if ( objet == 3 ) trap( thisItem ) ;
}
Voilà. Hâte de voir la tête de ton joueur !