Annonce

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


#16 2017-04-18 11:31:28 Re : Blocage Projet ISN

jojolaglaise
membre
Lieu: Basse Normandie
Date d'inscription: 2014-04-20
Messages: 137
Site web

Re: Blocage Projet ISN



No problem, ça arrive ça arrive!

D'accord, je n'avais pas compris pour le défilement automatique, eh bien il suffit de dire à la variable qui fait varier les indices de changer selon le timer! Quant au timer, ce sera une simple variable qui s'incrémentera de 1 à chaque tour de draw(). Toutes les 60 itérations (c-a-d toutes les secondes pour un frameRate d'environ 60), on augmente la variable compteur de 1. Je te laisse méditer là-dessus:

int n = 13;
PImage[] photo = new PImage[n];
int[] ensemblephoto = {1, 0, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 0};

int compteur = 0;
int score = 0;
int timer;

void setup(){
  size(600, 400);
  //IMPORTATION DES IMG
  for(int i = 0; i < n; i++){
     photo[i] = loadImage("photo" + i + ".png");
  }
}

void draw(){
  timer++;

  if(timer % 60 == 0 && compteur < n - 1){
    compteur += 1;
  }
  image(photo[compteur], 0, 0);
  println(compteur, score);
}

void mouseReleased(){
  if(compteur < n-1){
    if(ensemblephoto[compteur] == 1){ 
      score += 100;
    }
    compteur+=1;
  }
}

Dernière modification par jojolaglaise (2017-04-18 11:35:15)

Hors ligne

 

#17 2017-04-18 11:49:06 Re : Blocage Projet ISN

imnotarobot
membre
Date d'inscription: 2017-04-11
Messages: 16

Re: Blocage Projet ISN



J'ai testé, et si je ne marque pas cela au début ça ne marche pas :
PImage photo1;
PImage photo2;
PImage photo3;
PImage photo4;
PImage photo5;
PImage photo6;
PImage photo7;
PImage photo8;
PImage photo9;
PImage photo10;
PImage photo11;
PImage photo12;
PImage photo13;

De plus, on peut toujours cliquer pour faire défiler quand ca défile (tu vois ce que je veux dire? ^^). Il n'y a pas de méthode plus facile ou une manière d'insérer celui du programme de la prof dans celui-ci? Parce que celle-ci je comprends pas trop..

Hors ligne

 

#18 2017-04-19 10:13:04 Re : Blocage Projet ISN

jojolaglaise
membre
Lieu: Basse Normandie
Date d'inscription: 2014-04-20
Messages: 137
Site web

Re: Blocage Projet ISN



Je ne comprends pas ce que tu fais. Quel code utilises-tu? Si tu veux persévérer avec ton code, proposes moi alors des ébauches d'idées, des essais que tu aurais élaborés pour que je puisse t'aider à le perfectionner, à trouver une solution.

Ce que je te présente ici, c'est une solution qui me semble plus efficace, et moins "épaisse" en terme d'écriture. Si tu ne comprends pas des choses (l'utilisation des boucles et des tableaux j'imagine?) n'hésites pas à le signaler de façon explicite. Si tu ne veux pas l'utiliser, libre à toi.
N'hésites pas à copier ton code en entier ici pour que je puisse comprendre les erreurs et voir clairement ou tu en es.

Il ne s'agit pas de s'éparpiller dans plusieurs directions.

Hors ligne

 

#19 2017-04-19 23:38:32 Re : Blocage Projet ISN

imnotarobot
membre
Date d'inscription: 2017-04-11
Messages: 16

Re: Blocage Projet ISN



Avant qu'on mette le timer les images ne défilaient que lorsqu'on cliquait sur le clavier ou la souris. Je voulais qu'elles defilent toutes seules on a donc mis le timer. Cependant, on peut toujours cliquer pour que ca change d'image. C'est à dire on aurait nos images qui défilent toutes seules (par exemple à intervalle de 10 secondes), mais on peut aussi cliquer sur l'image pour qu'elle change. C'est embetant, puisque je voulais un defilement automatique, et que le clic sur les images ne sert qu'à compter les points. (J'ai essayé d'expliquer plus clairement)

jojolaglaise a écrit:

int n = 13;
PImage[] photo = new PImage[n];
int[] ensemblephoto = {1, 0, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 0};

int compteur = 0;
int score = 0;
int timer;

void setup(){
  size(600, 400);
  //IMPORTATION DES IMG
  for(int i = 0; i < n; i++){
     photo[i] = loadImage("photo" + i + ".png");
  }
}

void draw(){
  timer++;

  if(timer % 60 == 0 && compteur < n - 1){
    compteur += 1;
  }
  image(photo[compteur], 0, 0);
  println(compteur, score);
}

void mouseReleased(){
  if(compteur < n-1){
    if(ensemblephoto[compteur] == 1){ 
      score += 100;
    }
    compteur+=1;
  }
}

Dans la deuxième partie du message je voulais dire qu'avec ma prof pour faire défiler les images automatiquement nous avons fait cela (voir code ci-dessous)(je comprends mieux ce code). D'où ma question, est-il possible d'intégrer ce code à la place du timer? Car au final il a le meme rôle que le timer...

void draw() {
&#8232;compt=compt+1;&#8232;
if(compt<100){&#8232;
image(photo1,150,150) ;}&#8232;
if((compt>100)&&(compt<200)){&#8232;
image(photo2,150,150) ;}&#8232;
if((compt>200)&&(compt<300)){
&#8232;image(photo3,150,150);}&#8232;
if((compt>300)&&(compt<400)){
&#8232;image(photo4,150,150);}
&#8232;if((compt>400)&&(compt<500)){&#8232;
image(photo5,150,150);}
&#8232;if((compt>500)&&(compt<600)){&#8232;
image(photo6,150,150);}
&#8232;if((compt>600)&&(compt<700)){
&#8232;image(photo7,150,150);}&#8232;
if((compt>700)&&(compt<800)){&#8232;
image(photo8,150,150);}&#8232;
if((compt>800)&&(compt<900)){&#8232;
image(photo9,150,150);}&#8232;
if((compt>900)&&(compt<1000)){&#8232;
image(photo10,150,150);}&#8232;
if((compt>1000)&&(compt<1100)){&#8232;
image(photo11,150,150);}&#8232;
if((compt>1100)&&(compt<1200)){
&#8232;image(photo12,150,150);}&#8232;
if((compt>1200)&&(compt<1300)){&#8232;
image(photo13,150,150);&#8232;}

Hors ligne

 

#20 2017-04-20 11:41:12 Re : Blocage Projet ISN

jojolaglaise
membre
Lieu: Basse Normandie
Date d'inscription: 2014-04-20
Messages: 137
Site web

Re: Blocage Projet ISN



citation :

C'est embetant, puisque je voulais un defilement automatique, et que le clic sur les images ne sert qu'à compter les points. (J'ai essayé d'expliquer plus clairement)

Eh bien il suffit de supprimer une ligne pour que le clic ne change plus d'image (si tu veux 10 sec d'intervalle, il suffit de remplacer 60 par 600):

int n = 13;
PImage[] photo = new PImage[n];
int[] ensemblephoto = {1, 0, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 0};

int compteur = 0;
int score = 0;
int timer;

void setup(){
  size(600, 400);
  //IMPORTATION DES IMG
  for(int i = 0; i < n; i++){
     photo[i] = loadImage("photo" + i + ".png");
  }
}

void draw(){
  timer++;
  //AFFICHE UNE IMAGE
  if(timer % 600 == 0 && compteur < n - 1){
    compteur += 1;
  }
  image(photo[compteur], 0, 0);
  println(compteur, score);
}

void mouseReleased(){
  //SI ON NE DEPASSE PAS DU TABLEAU
  if(compteur < n-1){
    if(ensemblephoto[compteur] == 1){ 
      score += 100;
    }else{
      score -= 200;
    }
    //compteur+=1;
  }
}

void keyReleased(){
   if(compteur < n-1){
    compteur += 1;
   }
}

Ensuite, si tu as des propositions d'ergonomie plus étoffées, c'est tout à fait envisageable, car je ne suis pas sur qu'attendre que l'image défile d'elle-même un fois cliquée soit très enthousiasmant. 

citation :

Dans la deuxième partie du message je voulais dire qu'avec ma prof pour faire défiler les images automatiquement nous avons fait cela (voir code ci-dessous)(je comprends mieux ce code). D'où ma question, est-il possible d'intégrer ce code à la place du timer? Car au final il a le meme rôle que le timer...

Tu fais ce que tu veux: si tu veux remplacer 5 lignes de code par cet énorme paragraphe de conditions, c'est ton choix smile Mais, personnellement, je ne te le recommande pas du tout. wink
Et c'est à ce moment là que tu verras l'utilité d'utiliser des tableaux et des boucles pour éviter ce genre de labeur, très pénible: car il faudra changer le nom de toutes les variables à la main.

L'idée dans le code que je t'ai fourni, c'est de ranger toutes les images dans un tableau. Idem pour l'autre tableau. Conceptuellement, on pourrait les imaginer deux lignes de tiroirs dans une commode. Le premier tiroir (n°0) contient la première image, et le tiroir en dessous indiquerait (1 ou 0) si cette image fait référence au Maroc, vrai ou faux. Appelons ça le "tiroir vérité", qui contient la réponse.Il y a 'n' image, la dernière image correspond d'ailleurs à l'indice n-1.

Le compteur, lui, indique quel tiroir s'ouvre. C'est un nombre et sa valeur augmente toutes le x secondes, compteur prend successivement les valeurs 0, 1, 2… jusqu'à n-1. L'image et "la table de vérité" (le tableau "ensemblephoto") sont accordées, et il ne peut s'ouvrir qu'une seule colonne de tiroir à la fois. Le tiroir image et le tiroir "vérité". Cette colonne correspond à un indice, c'est celui de compteur!

donc

image(photo[compteur], 0, 0);

affiche une image .
Si on clique et que le tiroir "vérité" correspond à un, on a un point. Mais tout cela cette condition: on vérifie qu'on ne dépasse pas de la commode, que le tiroir existe bel et bien.

void mouseReleased(){
  if(compteur < n-1){
    if(ensemblephoto[compteur] == 1){ 
      score += 100;
    }
  }
}

Dernière modification par jojolaglaise (2017-04-20 11:47:11)

Hors ligne

 

#21 2017-04-21 21:00:32 Re : Blocage Projet ISN

imnotarobot
membre
Date d'inscription: 2017-04-11
Messages: 16

Re: Blocage Projet ISN



citation :

Tu fais ce que tu veux: si tu veux remplacer 5 lignes de code par cet énorme paragraphe de conditions, c'est ton choix smile Mais, personnellement, je ne te le recommande pas du tout. wink

Justement, c'est remplacer ces 5 lignes que je n'arrive pas à faire hmm

Hors ligne

 

#22 2017-04-22 20:02:35 Re : Blocage Projet ISN

jojolaglaise
membre
Lieu: Basse Normandie
Date d'inscription: 2014-04-20
Messages: 137
Site web

Re: Blocage Projet ISN



Hé bien… La perspective de bidouiller ce morceau de code spécifique de surcroit et indigeste ne m'encourage pas beaucoup… Surtout lorsque, sur ce fil, il a déjà été établit un certain soin quant à l'établissement d'une solution accompagné de ses explications à ton problème.

Je le redis plus clairement, je n'ai pas envie de corriger littéralement cette option. Cette solution est inadéquate à mon goût, trop fastidieuse. Je préfère mille fois expliquer les concepts de boucle, listes, etc. plutôt que d'ergoter sur une solution-scotch comme celle-ci.

Cependant, si tu veux faire un code hybride mixant la proposition de ta prof, et éventuellement ce qu'il a déjà été énoncé ici, je te laisse essayer le mélange, et surtout copie/colle en entier ton programme ici si tu n'y parviens pas. Publie tes essais.
Je ne sais pas ce que tu as pioché et mélangé. Juger le milkshake à condition d'y gouter.

Dernière modification par jojolaglaise (2017-04-22 20:04:57)

Hors ligne

 

#23 2017-04-28 13:52:14 Re : Blocage Projet ISN

imnotarobot
membre
Date d'inscription: 2017-04-11
Messages: 16

Re: Blocage Projet ISN



Bonjour, désolé du retard, je gère bac de langues et isn. ^^ Bon, j'avance sur le projet et j'avais une petite question, comment je pourrais centrer les images? j'ai un petit trou...

Hors ligne

 

#24 2017-04-28 22:07:41 Re : Blocage Projet ISN

imdidi
membre
Date d'inscription: 2012-10-05
Messages: 242

Re: Blocage Projet ISN



bonjour
voila c'est très simple imageMode(CENTER); tu peux aller voir la référence pour plus d'explication

a+

Hors ligne

 

#25 2017-04-28 23:23:56 Re : Blocage Projet ISN

imnotarobot
membre
Date d'inscription: 2017-04-11
Messages: 16

Re: Blocage Projet ISN



Bonsoir,
Merci. Est-ce que vous savez comment je peux intégrer un bouton start, dès qu'on cliquera dessus la partie commencera, vous voyez?

Hors ligne

 

#26 2017-05-05 20:49:17 Re : Blocage Projet ISN

imnotarobot
membre
Date d'inscription: 2017-04-11
Messages: 16

Re: Blocage Projet ISN



jojolaglaise a écrit:

Bonsoir,
mon projet touche bientôt à sa fin, cependant j'ai un problème. Mes images défilent direct quand j'ouvre la fenetre, je voudrai que le jeu commence quand on clique sur l'image (ou à la rigueur un bouton "start" je sais un peu la technique).

Hors ligne

 

#27 2017-05-05 20:52:27 Re : Blocage Projet ISN

imnotarobot
membre
Date d'inscription: 2017-04-11
Messages: 16

Re: Blocage Projet ISN



Oups mauvaise manip ^^

Hors ligne

 

fil rss de cette discussion : rss

Pied de page des forums

Powered by FluxBB

codelab, graphisme & code : emoc / 2008-2024