Annonce

>>> Bienvenue sur codelab! >>> Première visite ? >>> quelques mots sur codelab //// une carte des membres//// (apéros) codelab


#1 2012-05-23 21:13:58 random de vidéos

ArtMaggy
nouveau membre
Date d'inscription: 2012-05-23
Messages: 2

random de vidéos



Bonjour,

J'ai posté un message tout à l'heure mais à mon avis, pas au bon endroit... hmm  Donc, je vous le copie ici ! tongue


Bonjour,

Je suis nouvelle sur ce forum et je débute également avec processing. Je fais actuellement un jeu de l'oie interactif. Je vous explique mon dilemme car je ne suis pas sûre de la façon dont je dois procéder en programmation. Comme tout jeu de l'oie, il me fallait des dés. J'ai donc fait 6 animations (.mov) de dés pour avoir six possibilités différentes de résultats. Je me suis dis donc, qu'il me fallait faire un random avec les vidéos. Cependant, je ne trouve strictement aucun exemple sur internet donc, je me demande si c'est bien la meilleure façon de faire. Quelqu'un a-t-il un avis sur le sujet ???

Mille mercis pour "la ou les" réponses

Hors ligne

 

#2 2012-05-23 23:43:34 Re : random de vidéos

emoc
@#@*$
Lieu: Quimper
Date d'inscription: 2008-01-28
Messages: 1576
Site web

Re: random de vidéos



Bonjour et bienvenue,

Je ne suis pas bien sûr de comprendre ta question, il n'y a peut être pas de "meilleure manière" pour montrer les résultats d'un tirage de dé, tu pourrais aussi afficher des faces de dés graphiquement (avec les fonctions graphiques de processing : ellipse, etc.) qui défilent rapidement, et progressivement plus lentement jusqu'au résultat, ou faire défiler verticalement à la manière d'un jackpot, ou d'un paquet de manières différentes smile
C'est plutôt de choix graphique en rapport avec l'ensemble de ton jeu.





lien vers la page de la vidéo sur youtube

Hors ligne

 

#3 2012-05-24 00:22:47 Re : random de vidéos

emoc
@#@*$
Lieu: Quimper
Date d'inscription: 2008-01-28
Messages: 1576
Site web

Re: random de vidéos



Un petit exemple, finalement bien plus long que ce que j'avais imaginé avant de le faire...

Code (processing) :

boolean resultat_affiche;
int resultat;
int resultat_temp;

int step;
int next_step;
int compteur;

void setup() {
  size(500, 500);
  frameRate(25);
  initialiser();
}

void draw() {
  if (step <= 0) {
    resultat_affiche = true;
  } 
  
  if (resultat_affiche) {
    background(255, 0, 0);
    afficher_valeur(resultat);
  } else {
    background(0);
    if (step <= next_step) {
      next_step = next_step - compteur;
      resultat_temp = tirage_de();
    }
    afficher_valeur(resultat_temp);
    step --;
    compteur ++;
  }
}

void initialiser() {
  resultat_affiche = false;
  step = 100;
  next_step = 99;
  compteur = 0;
  resultat = tirage_de();
}

int tirage_de() {
  return floor(random(6) + 1);
}

void afficher_valeur(int chiffre) {
  fill(255);
  stroke(255);
  rect(50, 50, 400, 400);
  fill(0);
  ellipseMode(CENTER); 
  
  switch(chiffre) {
    case 1 : 
      ellipse(width / 2, height / 2, 40, 40);
      break;
    case 2 : 
      ellipse(width / 3, 2 * height / 3, 40, 40);
      ellipse(2 * width / 3, height / 3, 40, 40);
      break;
    case 3 :
      ellipse(width / 3, 2 * height / 3, 40, 40);
      ellipse(width / 2, height / 2, 40, 40);
      ellipse(2 * width / 3, height / 3, 40, 40);
      break;
    case 4 : 
      ellipse(width / 3, height / 3, 40, 40);
      ellipse(width / 3, 2 * height / 3, 40, 40);
      ellipse(2 * width / 3, height / 3, 40, 40);
      ellipse(2 * width / 3, 2 * height / 3, 40, 40);
      break;
    case 5 : 
      ellipse(width / 3, height / 3, 40, 40);
      ellipse(width / 3, 2 * height / 3, 40, 40);
      ellipse(width / 2, height / 2, 40, 40);
      ellipse(2 * width / 3, height / 3, 40, 40);
      ellipse(2 * width / 3, 2 * height / 3, 40, 40);
      break;
    case 6 : 
      ellipse(width / 3, height / 3, 40, 40);
      ellipse(width / 2, height / 3, 40, 40);
      ellipse(width / 3, 2 * height / 3, 40, 40);
      ellipse(2 * width / 3, height / 3, 40, 40);
      ellipse(width / 2, 2 * height / 3, 40, 40);
      ellipse(2 * width / 3, 2 * height / 3, 40, 40);
      break;
  }
}

void keyPressed() {
  if (key == ' ') { // espace pour tirer un nouveau chiffre
    initialiser();
  }
}

Hors ligne

 

#4 2012-05-24 08:12:37 Re : random de vidéos

Mushussu
membre
Lieu: Orléans
Date d'inscription: 2012-05-24
Messages: 802

Re: random de vidéos



Bonjour,

Le dé fût un de mes premiers programme en Processing. Je n'ai pas pris le temps de le revoir, il y a sans doute beaucoup de chose à améliorer. Mais cela peut t'inspirer.

Code (Processing) :

int compteurX = 0;
int rotationX = 0;
int compteurY = 0;
int rotationY = 0;
int compteurZ = 0;
int rotationZ = 0;
Cube cube = new Cube();

void setup() {
  size(400, 400, P3D); 
  stroke(0);
  lights();
  frameRate(30);
}

void draw() {
  if (compteurX < rotationX) {
    compteurX = compteurX +  10;
  }
  if (compteurY < rotationY) {
    compteurY = compteurY +  10;
  }
  if (compteurZ < rotationZ) {
    compteurZ = compteurZ +  10;
  }
  background(0);
  translate(width/2, height/2, 0);
  cube.rotationCube(compteurX, compteurY, compteurZ);
  cube.dessinCube();
}

void keyPressed() {
  compteurX = (rotationX % 360);
  rotationX = compteurX + 90*(1 + int(random(8)));
  compteurY = (rotationY % 360);
  rotationY = compteurY + 90*(1 + int(random(8)));
  compteurZ = (rotationZ % 360);
  rotationZ = compteurZ + 90*(1 + int(random(8)));
}

class Cube {
  
  Cube(){
  }
  
  void rotationCube(int rx, int ry, int rz){
    rotateX(radians(rx));
    rotateY(radians(ry));
    rotateZ(radians(rz));
  }
  
  void dessinCube() {
    stroke(0);
    fill(255, 0, 0);
    box(100);
    
    fill(255);
    // Le 6
    dessinPoint(0, 30, 50.1, 0 ,0);
    dessinPoint(0, -30, 50.1, 0 ,0);
    dessinPoint(30, 30, 50.1, 0 ,0);
    dessinPoint(-30, 30, 50.1, 0 ,0);
    dessinPoint(30, -30, 50.1, 0 ,0);
    dessinPoint(-30, -30, 50.1, 0 ,0);
    // Le 1
    dessinPoint(0, 0, -50.1, 0 ,0);
    // Le 5
    dessinPoint(-50.1, 30, -30, 0, 90);
    dessinPoint(-50.1, 30, 30, 0, 90);
    dessinPoint(-50.1, 0, 0, 0, 90);
    dessinPoint(-50.1, -30, 30, 0, 90);
    dessinPoint(-50.1, -30, -30, 0, 90);
    // Le 2
    dessinPoint(50.1, -30, -30, 0, 90);
    dessinPoint(50.1, 30, 30, 0, 90);
    // Le 4
    dessinPoint(-30, 50.1, -30, 90, 0);
    dessinPoint(30, 50.1, -30, 90, 0);
    dessinPoint(-30, 50.1, 30, 90, 0);
    dessinPoint(30, 50.1, 30, 90, 0);
    // Le 3
    dessinPoint(-30, -50.1, -30, 90, 0);
    dessinPoint(0, -50.1, 0, 90, 0);
    dessinPoint(30, -50.1, 30, 90, 0);
  }
  
  void dessinPoint(float px, float py, float pz, int rx, int ry) {
    pushMatrix();
    translate(px, py, pz);
    rotateX(radians(rx));
    rotateY(radians(ry));
    noStroke();
    ellipse(0, 0, 18, 18);
    popMatrix(); 
  }
}

Hors ligne

 

#5 2012-05-25 16:50:42 Re : random de vidéos

EricRG
membre
Lieu: Lorient
Date d'inscription: 2008-03-11
Messages: 171
Site web

Re: random de vidéos



euh, il manque ta classe Cube smile


J'étudie Godot Engine. Mon site internet est : https://ericrogergarcia.legtux.org/

Hors ligne

 

#6 2012-05-25 16:54:46 Re : random de vidéos

EricRG
membre
Lieu: Lorient
Date d'inscription: 2008-03-11
Messages: 171
Site web

Re: random de vidéos



Sinon, pour utiliser des vidéos,

ton programme peut choisir la vidéo en fonction d'un jet de dés

la fonction random() est là : http://processing.org/reference/random_.html

int de=int(random(6)+1) si je n'm'abuse smile

random(6) retourne un flottant entre 0 et 5


J'étudie Godot Engine. Mon site internet est : https://ericrogergarcia.legtux.org/

Hors ligne

 

#7 2012-05-25 21:05:55 Re : random de vidéos

cgiles
membre
Lieu: Est de la France
Date d'inscription: 2005-05-25
Messages: 329

Re: random de vidéos



tu peux aussi taper int()random(6)+1 , ça marche aussi, on appel ça un casting

Hors ligne

 

#8 2012-05-25 22:30:27 Re : random de vidéos

emoc
@#@*$
Lieu: Quimper
Date d'inscription: 2008-01-28
Messages: 1576
Site web

Re: random de vidéos



EricRG a écrit:

euh, il manque ta classe Cube smile

Non, elle est bien dans l'exemple donné par Mushussu, qui fonctionne d'ailleurs, et c'est un chouette exemple wink

Hors ligne

 

#9 2012-05-26 04:26:33 Re : random de vidéos

Mushussu
membre
Lieu: Orléans
Date d'inscription: 2012-05-24
Messages: 802

Re: random de vidéos



Merci maître …

Hors ligne

 

#10 2012-05-27 12:33:05 Re : random de vidéos

EricRG
membre
Lieu: Lorient
Date d'inscription: 2008-03-11
Messages: 171
Site web

Re: random de vidéos



OUi, en effet !
Désolé, j'aurais dû être plus attentif !
(J'avais mal fait mon copier/coller !!!!)


C'est vraiment très chouette !!!


J'étudie Godot Engine. Mon site internet est : https://ericrogergarcia.legtux.org/

Hors ligne

 

fil rss de cette discussion : rss

Pied de page des forums

Powered by FluxBB

codelab, graphisme & code : emoc / 2008-2024