Un objet qui inverse les couleurs

pour Elio (Rosny-sous-bois)

Tu aimerais qu'un des objets de ton jeu ait le pouvoir très spécial d'inverser toutes les couleurs ? Intéressant ! Voici comment faire en quelques étapes.

Savoir si le joueur détient l'objet

Comment veux-tu que le joueur déclenche cet effet ? Tu veux qu'il puisse l'enclencher puis le désenclencher ? Alors il te faudras l'un de ces deux hack

Tu veux que l'effet s'enclanche définitivement quand le joueur ramasse un objet ? Alors il te faudras ce hack.

Créer l'effet

Attention, cet effet est extremement simple, il suffit d'ajouter une ligne dans la fonction game() du script game.js. Elle s'appliquera sur toutes les images affichées plus tôt. Si tu veux que les couleurs du niveau soient inversées, mais pas celles de l'inventaire du joueur, place la ligne après la ligne viewDisplay(); et avant la ligne inventoryDisplay();.

function game(){
  
  viewDisplay();

  filter(INVERT);

  inventoryDisplay();
                
  if (animation()) playerControl();
                
}

Si tu veux que l'effet s'applique sur l'ensemble du jeu place la ligne après viewDisplay(); et après la ligne inventoryDisplay();, comme dans cet exemple.

function game(){
  
  viewDisplay();
  inventoryDisplay();
  
  filter(INVERT);
  
  if (animation()) playerControl();
  
}

Ajouter une condition

Maintenant, j'imagine que tu aimerais que cet effet ne s'applique que dans un cas de figure particulier. Pour ça, il te suffite de rajouter une condition devant la ligne que tu viens de rajouter. Cette condition dépend du hack que tu auras choisi plus haut, par exemple si tu as choisi de créer la fonction isInInventory(), rajoute cette conditon.

function game(){

  viewDisplay();
  inventoryDisplay();
                  
  if ( isInInventory( 1 ) ) filter(INVERT);
                  
  if (animation()) playerControl();
                  
}

Si tu as choisi de créer la fonction isItemSelected() alors rajoute cette condition.

function game(){

viewDisplay();
inventoryDisplay();
    
if ( isItemSelected( 1 ) ) filter(INVERT);
    
if (animation()) playerControl();
    
}

Enfin, remplace le 1 dans ta condition par le type d'objet qui devra déclencher l'effet.

Et voilà, tu as crée ton objet avec son effet spécial !