Bon voila,
Je suis sur la recherche d'une solution pour une manipulation clavier sur le programme que je suis entrain d'écrire.
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
C'est pourquoi je me tourne vers vous
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
Salute
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
Pages: 1