Outils pour utilisateurs

Outils du site


wiki:projets:twister-interactif:accueil

INTRODUCTION :

BASE DE QUESTIONNEMENT :

Qu’est ce qui rend un jeu agréable ou non à jouer ? Le rôle de maître du jeu (comme le compteur au loup garou ou le maître de la girouette au twister) qui est là pour diriger le jeu et qui ne prend pas véritablement place aux côté des autres joueurs est souvent celui dont personne ne veut. La robotisation, permettant l’élimination de certains métiers ou de tâches trop lourdes, peut ici remplir ce poste ingrat et par la même occasion donner la possibilité à tous les joueurs d’avoir le même type de rôle et donc de s’amuser en même temps. La robotisation peut donc ici être vue comme une alternative positive de l’homme. Plutôt que de « voler » la place d’un homme elle lui permet de choisir le rôle qu’il veut occuper dans le jeu. Pour cela, dérivation du jeu twister en un jeu interactif mêlant analogique et digital. Jeu programmé en processing et réalisé avec un makey-makey.

PROGRAMME :

UTILISATION DE DEUX LIBRAIRIES :

// IMPORT LIBRAIRIES
import processing.sound.*;
import processing.video.*;

// DÉCLARATION VARIABLES GLOBALES
// sons
SoundFile mga;    // "main gauche argent"
SoundFile mgo;    // "main gauche or"
SoundFile mgb;    // "main gauche bronze"

// videos
Movie AnimMDa;    // vidéo main droite argent
Movie AnimMDb;    // vidéo main droite bronze
Movie AnimMDo;    // vidéo main droite or

// INNITIALISATION DES VARIABLES GLOBALES ET DES PARAMETRES D'AFFICHAGE
void setup(){ 
// initialisation des variables de sons
mga = new SoundFile(this, "mgA.wav");
mgo = new SoundFile(this, "mgO.wav");
mgb = new SoundFile(this, "mgB.wav");

// initialisation des variables de vidéo
AnimMDa = new Movie(this, "MDargent.mov");
AnimMDb = new Movie(this, "MDbronze.mov");
AnimMDo = new Movie(this, "MDor.mov");

}

// BOUCLE D'AFFICHAGE, RAFRAICHISSEMENT DE LA FENETRE D'AFFICHAGE
void draw(){ 

  // vérifie si vidéos peuvent être lancées
if (AnimPGa.available()) { // Si nouvelle trame dispo alors
  AnimPGa.read(); // Lecture de la trame
  image(AnimPGa, 0, 0, width, height); // Et affichage à l’écran
}
if (AnimPGb.available()) { // Si nouvelle trame dispo alors
  AnimPGb.read(); // Lecture de la trame
  image(AnimPGb, 0, 0, width, height); // Et affichage à l’écran
} 
if (AnimPGo.available()) { // Si nouvelle trame dispo alors
  AnimPGo.read(); // Lecture de la trame
  image(AnimPGo, 0, 0, width, height); // Et affichage à l’écran
} 

choixcorpcouleur(); 

}

// MÉTHODES
void choixcorpcouleur(){
pdo.play();               // alors son "pied droit or" se lance
AnimPDo.play();           // alors video se lance
AnimPDo.jump(0);          // alors video se rembobinent
}

MÉTHODES PRINCIPALES :

// choix de l'élément du corps et de la couleur
void choixcorpcouleur(){         

xcorps = int(random(0, 4));    // corps prend valeur aléatoire entre 0 et 3
xcouleur = int(random(0, 3));  // couleur prend valeur aléatroire entre 0 et 3

if  (xcorps == 0){             // si variable du corps = 0
  corps = "pied gauche";       // alors corps = pied gauche
  
  if (xcouleur == 0){          // si variable couleur = 0
    couleur = "or";            // alors couleur = or
    Pg = false;                // alors boolean pied gauche devient faux
    or = false;                // alors boolean or devient faux
    pgo.play();                // alors son "pied gauche or" se lance
    AnimPGo.play();            // alors vidéo se lance
    AnimPGo.jump(0);           // alors vidéo se rembobine
  }
  if (xcouleur == 1){          // si variable couleur = 1
    couleur = "argent";        // alors couleur = argent
    Pg = false;                // alors boolean pied gauche devient faux
    argent = false;            // alors boolean argent devient faux
    pga.play();                // alors son "pied gauche argent" se lance
    AnimPGa.play();            // alors vidéo se lance
    AnimPGa.jump(0);           // alors vidéo se rembobine
  }
  if (xcouleur == 2){          // si variable couleur = 2
    couleur = "bronze";        // alors couleur = bronze
    Pg = false;                // alors boolean pied gauche devient faux
    bronze = false;            // alors boolena bronze devient faux
    pgb.play();                // alors son "pied gauche bronze" se lance
    AnimPGb.play();            // alors video se lance
    AnimPGb.jump(0);           // alors video se rembobine
  }
  
  
  ccpg = corps + " " + couleur;     // chaine de caractère ccpg = partie du corps + couleur associée
  println(ccpg);                    // afficher ccpg dans console
}
  
// valide positon du joueur
void keyPressed(){
 
if ((Pg == false) && (or == false)){                           // si boolean pied gauche et boolean or = faux
  if (key == 'w' || key == 'a' || key == 's'){                 // si touches w / a / s sont appuyées
    Pg = true;                                                 // alors boolean pied gauche devient vrai
    or = true;                                                 // alors boolean or devient vrai
  }
}
if ((Pg == false) && (argent == false)){                       // si boolean pied gauche et boolean argent = faux
  if (key == 'd' || key == 'f' || key == 'g'){                 // si touches d / f / g sont appuyées
    Pg = true;                                                 // alors boolean pied gauche devient vrai
    argent = true;                                             // alors boolean argent devient vrai
  }
}
if (key == CODED){
  if ((Pg == false) && (bronze == false)){                     // si boolean pied gauche et boolean bronze = faux
    if (keyCode == UP || keyCode == DOWN || keyCode == LEFT){  // si touches haut / bas / gauche sont appuyées
      Pg = true;                                               // alors boolean pied gauche devient vrai
      bronze = true;                                           // alors boolean bronze devient vrai
    }
  }
}
if ((Pg == true) && (Pd == true) && (Mg == true) && (Md == true) && (or == true) && (argent == true) && (bronze == true)){                        // si tous les boolean sont vrais
  
  i = i + 1;                                                                                                                                      // compteur de joueur +1
  if (i == xj){                                                                                                                                   // si compteur de joueur = nombre de joueur                                                                                                                                     
    i = 1;                                                                                                                                        // alors compteur de joueur = 1
  }
  j = "joueur" + " " + (i); 
  
  println("");                                                                                                                                  
  println(j);                                                                                                                  // affiche numéro du joueur dans console
  
  if (i == 1){                                                                                                                                    // si compteur de joueur = 2
    j1.play();                                                                                                                                    // alors son "joueur 1" se lance
  }
  if (i == 2){                                                                                                                                    // si compteurde joueur = 1
    j2.play();                                                                                                                                    // alors son "joueur 2" se lance
  }
  
}

}

RÉFÉRENCES :

  • Twister, MB Jeux
  • Les éditions volumiques
  • Dominic Crapuchettes, conférence Ted Talks

IMAGES ET VIDÉO :

wiki/projets/twister-interactif/accueil.txt · Dernière modification: 2018/05/15 11:39 (modification externe)