Rendre un personnage immobile

Tu veux qu'un personnage bloque un passage ? Ou peux être veux-tu utiliser des personnages comme élément de décor dans ton jeu ? Quoi qu'il en soit, voici comment rendre immobile un personnage.

Modifier la fonction enemyMove()

Dans le script enemy.jsTrouve la fonction enemyMove() et modifie la ligne suivante.

function enemyMove( thisEnemy ) {
  
  // déplacement de l'ennemi

  let x = thisEnemy.pos[1].x ;
  let y = thisEnemy.pos[1].y ;
  let v ;

  if      ( x < thisEnemy.target.x ) x ++ ;
  else if ( x > thisEnemy.target.x ) x -- ;
  else if ( y < thisEnemy.target.y ) y ++ ;
  else if ( y > thisEnemy.target.y ) y -- ;
  
  v = createVector( x , y ) ;

if (pathCheck(x,y,true, true)) thisEnemy.pos[1] = v ;
if (pathCheck(x,y,true, true)) { if (thisEnemy.type == 0) thisEnemy.pos[1] = v ; }
}

Personnaliser sa condition

Le personnage 0 ne peut maintenant plus se déplacer. Si tu veux rendre immobile un autre personnage, remplace simplement la valeur dans la condition par celle du personnage que tu souhaites, comme suit.

thisEnemy.type == 0 // pour le personnage 0
thisEnemy.type == 1 // pour le personnage 1

Voilà, ton personnage est maintenant immobile.

Rendre plusieurs personnages immobiles

Si tu veux que plusieurs personnages soient immobiles il te suffit de placer cette ligne une nouvelle fois, avec une nouvelle condition, comme dans cet exemple.

function enemyMove( thisEnemy ) {
  
    // déplacement de l'ennemi
  
    let x = thisEnemy.pos[1].x ;
    let y = thisEnemy.pos[1].y ;
    let v ;
  
    if      ( x < thisEnemy.target.x ) x ++ ;
    else if ( x > thisEnemy.target.x ) x -- ;
    else if ( y < thisEnemy.target.y ) y ++ ;
    else if ( y > thisEnemy.target.y ) y -- ;
    
    v = createVector( x , y ) ;
  
    if ( pathCheck( x , y , true , true ) ) {

      // ici l'ennemi 0 et l'ennemi 1 sont immobiles

      if ( thisEnemy.type == 0 ) thisEnemy.pos[1] = v ;

if ( thisEnemy.type == 1 ) thisEnemy.pos[1] = v ;
} }