{{:wiki:projets:twister-interactif:sans_titre-1.jpg?nolink&300|}} ==== INTRODUCTION :==== * **Porteur du projet** : [[wiki:karma:ariane-loizon:ariane-loizon|Ariane Loizon]], [[wiki:karma:mathias-lorenzetti:accueil|Mathias Lorenzetti]] * **Contexte** : Processing ==== 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 :==== * {{:wiki:projets:twister-interactif:programme_processing.zip|}} * {{:wiki:projets:twister-interactif:schema_bloc_programme-couleur.pdf|schéma explicatif du 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 } } } {{:wiki:projets:twister-interactif:schema_bloc_programme-couleurb.png|}} ==== RÉFÉRENCES :==== * Twister, MB Jeux * Les éditions volumiques * Dominic Crapuchettes, conférence Ted Talks ==== IMAGES ET VIDÉO :==== {{:wiki:projets:twister-interactif:twister-filmcourt.mp4|}} {{:wiki:projets:twister-interactif:gif-main-gauche-bronze.gif|}} {{:wiki:projets:twister-interactif:gif-pied-droit-or.gif|}} {{:wiki:projets:twister-interactif:img_5095.jpg?nolink|}} {{:wiki:projets:twister-interactif:img_5021.jpg?nolink|}} {{:wiki:projets:twister-interactif:img_5068.jpg?nolink|}} {{:wiki:projets:twister-interactif:img_5043.jpg?nolink|}}