Annonce

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


#1 2017-03-28 14:50:14 changement de liste avec "up" et "down" dans processing

labalafre
nouveau membre
Date d'inscription: 2017-03-28
Messages: 2

changement de liste avec "up" et "down" dans processing



Bon voila,

Je suis sur la recherche d'une solution pour une manipulation clavier sur le programme que je suis entrain d'écrire.hmm

Pour ce qui est du fonctionnement du programme, je travail avec différentes liste d'images (progressif) et j'aimerai que quand on appui sur la touche "up" sa charge la liste suivante, etc, etc ... et inversement pour la touche "down".

Je suis encore novice sur processing mais j'essais d'apprendre assez vite smile

C'est pourquoi je me tourne vers vous yikes

voici moi code pour l'instant :


PImage[] images1 = new PImage[6] ;
PImage[] images2 = new PImage[6] ;
PImage[] images3 = new PImage[6] ;
PImage[] images4 = new PImage[6] ;
PImage[] images5 = new PImage[6] ;
PImage[] images6 = new PImage[6] ;


void setup() {
  size(600,600);
  frameRate(4);

for(int i=0; i<6; i++) {
   images1[i] = loadImage("module_" + i + ".png");
   images2[i] = loadImage("module1_" + i + ".png");
   images3[i] = loadImage("module2_" + i + ".png");
   images4[i] = loadImage("module3_" + i + ".png");
   images5[i] = loadImage("module4_" + i + ".png");
   images6[i] = loadImage("module5_" + i + ".png");
}
}

void draw() {
  background(255);
  smooth();
  noStroke();
  noFill();

image( images1[(int)random(6)], 0, 0);
}




void keyPressed() {
  if (key == CODED){
for (int a=0; a<6){
    if (keyCode == UP)     image( images(a)[(int)random(6)], 0, 0)  = image( images(a)[(int)random(6)], 0, 0) + 1;
    if (keyCode == DOWN)   image( images(a)[(int)random(6)], 0, 0)  = image( images(a)[(int)random(6)], 0, 0) - 1;
   }
  }

}

Dernière modification par labalafre (2017-03-28 14:56:42)

Hors ligne

 

#2 2017-03-30 09:44:35 Re : changement de liste avec "up" et "down" dans processing

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

Re: changement de liste avec "up" et "down" dans processing



Salute smile

Avoir 6 listes d'images de cardinal 6 revient à avoir une seule liste de dimension 2 de 6x6, soit une matrice carré.
L'avantage d'utiliser une unique liste de dimension 2, c'est de pouvoir faire varier les indices de tes listes, comme si l'on se déplaçait dans un espace discret en 2D, ou chaque case de ce "quadrillage" correspond à une image.
(ex: touche up et down pour se déplacer sur les différentes listes et left et right pour changer d'image à l'interieur d'une ligne de liste choisie).

ça donne quelque chose comme ça (je n'ai pas testé, mais ça devrait être bon...)

//charger listes 2D images

int n = 6; //matrice carre de 6x6
PImage[][] images = new PImage[n][n];
int a, b; // position dans l'espace de la matrice

void setup(){
  size(600, 600);
  for(int i = 0; i < n; i++){
    for(int j = 0; j < n; j++){
      images[i][j] = loadImage("module_" + i + "_" + j + ".png");
    }
  }
  frameRate(10);
  noStroke();
}

void draw(){
  background(255);
  image(images[a][b], 0, 0);
}

void keyReleased(){
  //CHANGER DE "LISTE" (ou plutot de ligne)
  if(keyCode == UP){
    a+=1;
  }
  if(keyCode == DOWN){
    a-=1;
  }
  //CHANGER d'IMAGE DANS LA LIGNE/LISTE
  if(keyCode == RIGHT){
    b+=1;
  }
  if(keyCode == LEFT){
    b-=1;
  }
}

N'oublie pas de changer le nom de tes fichiers en fonction : par exemple "module_0_4.png", ou ici le 0 indique le n° de ligne.

Dernière modification par jojolaglaise (2017-03-30 09:58:19)

Hors ligne

 

fil rss de cette discussion : rss

Pied de page des forums

Powered by FluxBB

codelab, graphisme & code : emoc / 2008-2024