Pages: 1
Bonjour à tous,
je suis totalement nouveau sur Processing et je poste afin de vous demander quelques conseils. Je programme un mini-jeu où un nuage se déplace et fait tomber des gouttes d'eau. Pour l'instant j'ai créé mon nuage, c'est un array qui contient les gouttes d'eau, chaque goutte d'eau a le comportement fall() qui les fait tomber.
J'arrive à déplacer les gouttes en ajoutant x += 1 à chaque frame mais je voulais savoir s'il y avait un moyen de faire suivre un chemin (sur l'axe X) à mes gouttes d'eau ?
Voici mon code (s'il y a des erreurs ou de meilleures méthodes pour réaliser ce que j'ai fait n'hésitez pas à m'en faire part.
ps : vous pouvez cliquer sur la souris pour inverser sa direction, c'était un petit test, mais j'aimerais que cela soit automatique en suivant un chemin par exemple : aller au point A, puis B, puis C, revenir au A. Peut-être en utilisant translate ?
Drop[] cloud; int nbDrop; void setup() { smooth(); size(1280, 720); nbDrop = 700; // number of drops cloud = new Drop[nbDrop]; for(int i= 0; i < cloud.length; i++) { cloud[i] = new Drop(); } } void draw() { background(255); for(int i = 0; i < cloud.length; i++) { cloud[i].draw(); // display my cloud and its drops } } class Drop { float x; float y; float gravityDrop; float yPlus; float speedDrop2; float etendue1; float etendue2; Drop() // Constructor { etendue1 = 0; // beginning cloud etendue2 = etendue1+200; // ending of my cloud, it always has a width of 200 x = random(etendue1,etendue2); y = random(0,height); gravityDrop = 0; yPlus = random(10,20); //adding random length to my drops so they don't look similar speedDrop2 = 0; } void draw() { display(); fall(); move(); } void display() { // drawing a drop line(x,y,x,y+yPlus); } void fall() { // Add speed to location. y = y + speedDrop2; // Add gravity to speed. speedDrop2 = speedDrop2 + gravityDrop; if(y > height) // if the drop hits the ground { y = random(0,height/3); yPlus = random(10,20); speedDrop2 = 0; } } void move() { if (mousePressed == true) { // forward gravityDrop = 0.5; x -=1; } else { // backward gravityDrop = 0.8; x +=1; } } }
D'avance merci et bonne journée à tous
Dernière modification par knarlevrai (2014-01-20 10:26:26)
Hors ligne
Pages: 1