Processing: Mes images n'apparaissent pas
Fermé
R2-D2
-
Modifié par KX le 25/05/2015 à 12:41
KX Messages postés 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 - 25 mai 2015 à 13:13
KX Messages postés 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 - 25 mai 2015 à 13:13
A voir également:
- Processing: Mes images n'apparaissent pas
- Processing download - Télécharger - Langages
- Exception processing message 0xc00006 unexpected parameters - Forum Windows
- Exception processing message 0x00013 unexpected parameters ✓ - Forum Windows
- Processing completed at origin - Forum Consommation & Internet
- An error occurred while processing your request. - Forum Bugs et suggestions
1 réponse
KX
Messages postés
16733
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
31 janvier 2024
3 015
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