Processing: Mes images n'apparaissent pas
Fermé
R2-D2
-
Modifié par KX le 25/05/2015 à 12:41
KX Messages postés 16754 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 - 25 mai 2015 à 13:13
KX Messages postés 16754 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 - 25 mai 2015 à 13:13
A voir également:
- Processing: Mes images n'apparaissent pas
- Processing download - Télécharger - Langages
- Controls the dts audio processing object ✓ - Forum Audio
- Nullpointerexception processing - Forum Java
- Exception processing message 0x00013 unexpected parameters ✓ - Forum Windows
- Arrival at processing center dhgate - Forum Consommation & Internet
1 réponse
KX
Messages postés
16754
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
25 novembre 2024
3 020
Modifié par KX le 25/05/2015 à 13:24
Modifié par KX le 25/05/2015 à 13:24
Bonjour,
Déjà mauvaise idée de mettre le chargement des images dans la méthode draw(), car celle-ci est appelée en continue pour l'affichage de l'interface graphique (200 fois par secondes vu le paramétrage de frameRate).
Tes images seront donc chargées des centaines de fois, alors qu'évidement une fois suffit. La méthode setup() est faite pour ça.
Un point important à savoir, c'est qu'aucun affichage ne peut se faire tant que la méthode draw() n'est pas terminée. C'est pour ça que tout apparaît à la fin (de la méthode draw). Or comme tu redéfinis le background entre chaque image, cela efface tout, donc quand la méthode draw() se termine - et que l'affichage a lieu - seule la dernière image est à afficher.
Si tu veux faire une "gestion du temps", il faudrait que tu comptes le nombre de fois que la méthode draw() est appelée, sachant que si tu as un frameRate à 200, tu auras 200 appels de draw() dans une seconde.
Exemple :
Déjà mauvaise idée de mettre le chargement des images dans la méthode draw(), car celle-ci est appelée en continue pour l'affichage de l'interface graphique (200 fois par secondes vu le paramétrage de frameRate).
Tes images seront donc chargées des centaines de fois, alors qu'évidement une fois suffit. La méthode setup() est faite pour ça.
Un point important à savoir, c'est qu'aucun affichage ne peut se faire tant que la méthode draw() n'est pas terminée. C'est pour ça que tout apparaît à la fin (de la méthode draw). Or comme tu redéfinis le background entre chaque image, cela efface tout, donc quand la méthode draw() se termine - et que l'affichage a lieu - seule la dernière image est à afficher.
Si tu veux faire une "gestion du temps", il faudrait que tu comptes le nombre de fois que la méthode draw() est appelée, sachant que si tu as un frameRate à 200, tu auras 200 appels de draw() dans une seconde.
Exemple :
PImage marche1; PImage marche2; void setup() { background(#AAAAAA); size(800,600); frameRate(200); marche1 = loadImage("marche1.png"); marche2 = loadImage("marche2.png"); } int frame = 0; void draw() { switch(frame) { case 0: if (keyPressed && key=='q') { background(#AAAAAA); image(marche1,50,135); frame=1; } break; case 200: image(marche2,50,135); frame=0; break; default: frame++; } }La confiance n'exclut pas le contrôle