Utilisation de Processing (Image en boucle)
SimonRan
Messages postés
8
Date d'inscription
Statut
Membre
Dernière intervention
-
SimonRan Messages postés 8 Date d'inscription Statut Membre Dernière intervention -
SimonRan Messages postés 8 Date d'inscription Statut Membre Dernière intervention -
Bonjours je m'appelle Simon, je suis entrain de réaliser un programme sur processing. J'ai crée un rectangle nommé "Play", ce qui veut dire que lorsque je clique sur le rectangle il faut qu'il y'a "3, 2 ,1, PARTEZ" qui apparaît sur l'écran. Mais justement je ne sais pas comment mettre des images en boucles. Vous n'auriez pas une idée pour programmé ?
A voir également:
- Boucle for processing
- Downloader for pc - Télécharger - Téléchargement & Transfert
- Idm for mac - Télécharger - Téléchargement & Transfert
- Copytrans heic for windows - Télécharger - Visionnage & Diaporama
- Instagram for pc - Télécharger - Divers Communication
- Microsoft store download for pc - Guide
2 réponses
Bonjour, Bonsoir ! Je t'ai fait un petit code que je l’espère répond à ta demande :)
Notes : si tu n'utilises pas un IDE pour compiler, il faudra changer certains paramètres.
Les images sont directement lues dans l'archive, par URL (la méthode statique en bas).
J'ai utilisé NetBeans comme IDE.
J'ai utilisé un thread qui met à jour une icone dans une classe qui étend un JPanel.
J'ai ajouté une instance de cette classe dans une JFrame (fenetre graphique de 500,500)
J'ai fais une méthode pour lancer le changement d'image dans ImagesARebours, et le tour est joué.
Si tu n'y arrive toujours pas, tu peux demander
Les images sont dans un package images.
Je sais pas si on peut donner des fichiers à télécharger sur CCM alors j'évite, mais si tu en as besoin je peux te le poster sur mon site.
Notes : si tu n'utilises pas un IDE pour compiler, il faudra changer certains paramètres.
Les images sont directement lues dans l'archive, par URL (la méthode statique en bas).
J'ai utilisé NetBeans comme IDE.
J'ai utilisé un thread qui met à jour une icone dans une classe qui étend un JPanel.
J'ai ajouté une instance de cette classe dans une JFrame (fenetre graphique de 500,500)
J'ai fais une méthode pour lancer le changement d'image dans ImagesARebours, et le tour est joué.
Si tu n'y arrive toujours pas, tu peux demander
Les images sont dans un package images.
Je sais pas si on peut donner des fichiers à télécharger sur CCM alors j'évite, mais si tu en as besoin je peux te le poster sur mon site.
package ccm;
import java.awt.Graphics2D;
import java.awt.Image;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import java.net.URL;
import java.util.ArrayList;
import javax.imageio.ImageIO;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
public class ImagesARebours extends JLabel{
private ArrayList<Image> images;
Thread t;
public ImagesARebours(){
super();
images = new ArrayList<>();
ajouterImage("/images/3.png");
ajouterImage("/images/2.png");
ajouterImage("/images/1.png");
}
private void ajouterImage(String url){
BufferedImage imagetmp = getRepresentation(getClass().getResource(url));
Image imageN = imagetmp.getScaledInstance(500, 500, BufferedImage.SCALE_SMOOTH);
images.add(imageN);
}
public void lancerRebours(){
t = new Thread(new Runnable() {
@Override
public void run() {
for(int i = 0; i < images.size(); i++){
setIcon(new ImageIcon(images.get(i)));
try{
Thread.sleep(1000); // on att 1000 ms pour changer d'image
}catch(InterruptedException e){
break;
}
}
}
});
t.start();
}
public static void main(String[] args) {
JFrame f = new JFrame();
f.setSize(500,500);
ImagesARebours imgR = new ImagesARebours();
f.add(imgR);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setVisible(true);
imgR.lancerRebours();
}
public static BufferedImage getRepresentation(URL url){
try{
return ImageIO.read(new File(url.getPath()));
}catch(IOException e){
System.err.println("Impossible de charger l'image suivante : "+url.getFile());
}
return null;
}
}
void setup(){
size (1600, 800);
background(100);
}
void draw(){
textSize(35);
text("Course de voiture", 500, 30);
fill(0, 102, 153);
noStroke();
fill(0, 102, 153);
rect(1010, 590, 200, 100);
textSize(15);
fill(0);
text("Demarrer", 1065,645);
}
void mousePressed(){
for(int i = 1010; i < 1010+200; i++){
for(int j = 590; j < 590+100; j++){
if(i == mouseX && j == mouseY){
System.out.println("click on button");
click();
return;
}
}
}
}
void click(){
PImage a ;
a = loadImage("C:\\Users\\Public\\Pictures\\Sample Pictures\\Koala.jpg");
image(a,490,300,200,200);
delay(1000);
a = loadImage("C:\\Users\\Public\\Pictures\\Sample Pictures\\Desert.jpg");
image(a,490,300,200,200);
delay(1000);
/*
a = loadImage("C:\\Users\\Schwarz\\Pictures\\Rammstein_Ohne_Dich_Wallpaper_by_Fangschrecke.jpg");
image(a,490,300,200,200);*/
delay(1000);
}
Voilà, par contre la fonction delay attend bien, mais elle ne fait pas un feresh de l'image... j'arrive pas à faire ce refresh, je te laisse le faire, tu connais surement mieux cet outil que moi :)
size (1600, 800);
background(100);
textSize(35);
text("Course de voiture", 500, 30);
fill(0, 102, 153);
noStroke();
fill(0, 102, 153);
rect(1010, 590, 200, 100);
textSize(15);
fill(0);
text("Demarrer", 1065,645);
PImage a ;
a = loadImage("chiffre-3.jpg");
image(a,490,300,200,200);
delay(1000);
PImage b ;
a = loadImage("chiffre-2.jpg");
image(a,490,300,200,200);
delay(1000);
PImage c ;
a = loadImage("chiffre-1.jpg");
image(a,490,300,200,200);
delay(1000);
A priori tu demandais du Processing dans le forum java, désolé de m’être trompé.
Bonne soirée