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