Repart du code que j'avais posté sur la page précédente, c'est ce que j'ai fait pour avoir une base fonctionnel.
Hors ligne
Merci beaucoup de ton aide (et de ta patience!), je vois ça tout de suite.
Edit: OK, au temps pour moi je n'avais pas ajouté ton code dans le bon sketch ().
J'ai effectivement deux tendrils dont un avec un émetteur de pollen qui colle à ce que je cherche. Je vais nettoyer le code et décortiquer tout ça et je te ferais part de mes modifs perso.
Encore merci à toi et à turboconnard pour votre aide!
aR
Dernière modification par Ars Robota (2012-01-25 21:25:16)
Hors ligne
Alors je reviens avec mon code modifié. Le voici:
Maintenant j'ai deux questions/problèmes:
- quelle est la cause du message d'erreur relatif au nombre de paramètre dans update2?
- comment sélectionner la première instance de l'arraylist pollens (dans pollens.get)?
Merci beaucoup,
aR
Hors ligne
Si c'est update si :
void update2() {
for (int j=0;j<pollens.size()-1;j++) {
nValX=noise((n+x[j])*nScale);
nValY=noise((m+j)*nScale);
pollens.get(j).update2(nValX, nValY);
}
}
je vois aucune liste nommé "x"
si c'est celui la :
void update2(float nValX, float nValY) {
posP.set(posP.x + nValX, posP.y + nValY,0);
}
c'est le fait qu'il manque un zero a la fin pour les z.
Pour avoir accès a ton premier membre, sois tu testes avec un if si i=0 dans un boucle, sinon hors boucle tu fais un pollens.get(0);
Hors ligne
citation :
si c'est celui la :
void update2(float nValX, float nValY) {
posP.set(posP.x + nValX, posP.y + nValY,0);
}
c'est le fait qu'il manque un zero a la fin pour les z
Exact, j'avais oublié ce petit zéro, merci de me le rappeler... Mais tu as également pointé le problème de ma liste x manquante.
Celle-ci vient d'un autre sketch que je voudrais mélanger avec le sketch présent. Initialement il s'agit d'une liste déclarée sous la forme float[] x=new float[nbr];
Je vais essayer de l'insérer en gardant cette forme là.
Merci,
aR
Hors ligne
Je te conseille fortement de ne pas utiliser de x ou y comme nom de variable, déja parce que processing s'en sert je crois, ensuite pour la lecture de ton code^^ mais xList posListX, ect...
Hors ligne
Merci du conseil, je corrige ça!
Je me suis rendu compte que j'avais oublié d'appeler ma fonction update2 dans draw()... Corrigé aussi.
A présent le résultat semble un peu plus "logique" mais je pense que je devrais déplacer ma boucle for dans la fonction update2 de Pollen...
Pendant le premier tour de boucle draw tout va bien, mais rapidement les instances de Pollens cessent de suivre les coordonnées issues de noise pour ne suivre que le trajet de Tendril... J'ai dû commettre une erreur au niveau de la fonction update de PollenManager, quelqu'un aurait-il une idée?
Dernière modification par Ars Robota (2012-02-08 18:29:31)
Hors ligne
up?
Hors ligne
Yahou! J'ai trouvé: il suffisait de copier la ligne
xList[i]=random(-100, 100);
depuis le constructeur de PollenManager vers la fonction update2 du même PollenManager. Seul petit soucis à régler: les instances de Pollen partent inévitablement vers la droite, ce qui est logique puisque j'ai dans update2 de Pollen posP.set(posP.x+(nValX*ease), posP.y-(nValY*ease), 0).
Malheureusement je dois être désespérément trop con pour comprendre le fonctionnement de la fonction noise(), donc je fais plus du bricolage qu'autre chose...
Voici le code complet (qui mérite certainement d'être nettoyé...)
Hors ligne