NathalieCom | une erreur s'est produit dans la ligne rouge dans le prog ci-dessous,
can't resolve symbole
if([#717100]tracker[#7f7f00].....[#0000ff]
merci à tous !!!!
Code :
- import java.awt.*;
- public class Example7Applet extends
- java.applet.Applet implements Runnable {
- int frame;
- int delay;
- Thread animator;
- Dimension offDimension;
- Image offImage;
- Graphics offGraphics;
- Image world;
- Image car;
- /**
- * Initialisation de l'applet et calcul du delai
- * entre "trames".
- */
- public void init() {
- String str = getParameter("fps" );
- int fps = (str != null) ? Integer.parseInt(str) : 10;
- delay = (fps > 0) ? (1000 / fps) : 100;
- MediaTracker tracker = new MediaTracker(this);
- world = getImage(getCodeBase(), "world.gif" );
- car = getImage(getCodeBase(), "car.gif" );
- tracker.addImage(world, 0);
- tracker.addImage(car, 0);
- }
- /**
- * La methode start() de l'applet. On crée la
- * thread d'animation et on la lance.
- */
- public void start() {
- animator = new Thread(this);
- animator.start();
- }
- /**
- * Le corps de la thread.
- */
- public void run() {
- // stocker la date de lancement
- long tm = System.currentTimeMillis();
- while (Thread.currentThread() == animator) {
- // lance l'affichage de l'animation
- repaint();
- // Delai d'attente ajuste pour avoir la
- // meme attente entre chaque trame.
- try {
- tm += delay;
- Thread.sleep(Math.max(0, tm - System.currentTimeMillis()));
- }
- catch (InterruptedException e) {
- break;
- }
- // numero de trame incremente pour
- // pouvoir afficher la trame
- // suivante.
- frame++;
- }
- }
- /**
- * La methode stop() de l' applet.
- * Elle arrete la thread et desalloue
- * les entites necessaires au double buffering.
- */
- public void stop() {
- animator = null;
- offImage = null;
- offGraphics = null;
- }
- /** dessine la trame courante. */
- public void paint(Graphics g) {
- Dimension d = size();
- // Cree le double buffering si ce n'est pas deja fait.
- if ((offGraphics == null) || (d.width != offDimension.width)
- || (d.height != offDimension.height)) {
- offDimension = d;
- offImage = createImage(d.width, d.height);
- offGraphics = offImage.getGraphics();
- }
- // efface l'image precedente
- offGraphics.setColor(getBackground());
- offGraphics.fillRect(0, 0, d.width, d.height);
- offGraphics.setColor(Color.black);
- // prepare le dessin de la bonne trame
- paintFrame(offGraphics);
- // affiche la bonne trame a l'écran
- g.drawImage(offImage, 0, 0, null);
- }
- public void update(Graphics g) {
- paint(g);
- }
- /** la creation de la trame :
- * utilise le double buffering et le MediaTracker
- */
- public void paintFrame(Graphics g) {
- // Ne faire l'affichage que lorsque
- // toutes les images ont été chargées
- // au besoin provoquer le chargement
- // des images par status(..., true);
- [#00ff00] l'erreur se situe ici [#00d42a]
- [#d42a00]if (tracker.statusID(0, true) == MediaTracker.COMPLETE) {
- Dimension d = size();
- int w = world.getWidth(this);
- int h = world.getHeight(this);
- g.drawImage(world, (d.width - w)/2,
- (d.height - h)/2, this);
- w = car.getWidth(this);
- h = car.getHeight(this);
- w += d.width;
- //dessine la premiere voiture qui avance de
- // a la fois 5 pixels de droite à gauche
- g.drawImage(car, d.width - ((frame * 5) % w), (d.height - h)/3, this);
- //dessine la seconde voiture :
- // elle avance de 7 pixels de droite à gauche
- g.drawImage(car, d.width - ((frame * 7) % w), (d.height - h)/2, this);
- }
- else { // dans le cas où les images n'ont
- // pas encore été chargées
- g.drawString("Images en cours de chargement",50, 50);
- }
- }
- }
|
|