Problème avec getImage()

Résolu
Signaler
Messages postés
5
Date d'inscription
lundi 16 janvier 2006
Statut
Membre
Dernière intervention
16 avril 2008
-
Messages postés
5
Date d'inscription
lundi 16 janvier 2006
Statut
Membre
Dernière intervention
16 avril 2008
-
Bonjour,

J'ai beaucoup hésité avant de poster ce message mais je pense avoir cherché partout (y compris sur http://java.sun.com/javase/6/docs/api/ ) et je n'ai trouvé aucune solution, donc ... je me permets de vous demander de l'aide :)

J'essaye de programmer un petit jeu (original, non ? mais, je ne l'ai pas choisi) sous forme d'applet. Pour le moment ce n'est rien de bien compliqué juste un personnage (4 images) qui doit se déplacer quand on appuie sur une des flèches directionnelles, l'image affichée dépendant de l'orientation de celui-ci.





Voici quelques extraits du code :

Fichier projet.java




import javax.swing.JApplet;
import java.awt.Graphics;
import java.awt.Point;
import java.awt.event.*;
import java.awt.event.KeyEvent;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import java.awt.*;

public class projet extends JApplet implements KeyListener, ActionListener
{
    Image map;
    Personnage ch;

    public void init()
    {
        System.out.println("Initialisation ...");
        addKeyListener(this);
        map = getImage(getCodeBase(), "map1.png");
        ch = new Personnage(100, 100, 3);
    }
   
    public void start()
    {
        System.out.println("Demarrage ...");
    }

    public void actionPerformed(ActionEvent e) { repaint(); }
   
    public void keyReleased(KeyEvent e) {;}
    public void keyTyped(KeyEvent e) {;}
    public void keyPressed(KeyEvent e)
    {
        if(e.getKeyCode() == KeyEvent.VK_UP)
        {
            ch.movUp();
            System.out.print("UP");
        }
...
        repaint();
    }

    public void paint (Graphics g)
    {
        g.drawImage( map, 0, 0,getSize().width, getSize().height, this );
        ch.dessiner(g);
        requestFocus();
    }
}






Fichier Personnage.java






import java.awt.*;
import java.awt.Image;
import java.awt.Graphics;
import java.awt.Point;

public class Personnage
{
    Point position;
    Image curDir;
    Image picUp = getImage(getCodeBase(), "imgUp.png");
    Image picDown = getImage(getCodeBase(), "imgDown.png");
    Image picRight = getImage(getCodeBase(), "imgRight.png");
    Image picLeft = getImage(getCodeBase(), "imgLeft.png");
   
    Personnage (int px, int py, int dir)
    {        if (dir 1) curDir picUp;        if (dir 2) curDir picRight;        if (dir 3) curDir picDown;        if (dir 4) curDir picLeft;
        position = new Point (px, py);
    }

    public void movUp ()
    {
        curDir = picUp;
        position.y -= 5;
    }
...




    void dessiner(Graphics g)
    {
        g.drawImage(curDir, (int)position.x, (int)position.y, null);
    }
}






Et à la compilation j'ai le droit à :





./Personnage.java:13: cannot find symbol
symbol  : method getImage(java.lang.String)
location: class Personnage
        Image picUp =




getImage(getCodeBase(), "





imgUp.png");
                                                 ^



(pour chaque image)






C'est sans doute une erreur stupide, mais j'ai beau chercher je ne trouve pas











... alors si  vous pouviez m'aider cela m'arrangerait énormemment.

Merci d'avance.

3 réponses


Bonjour

DARKSIDIOUS a raison. Tu peux charger tes images en passant par ta classe "projet" car elle étend JApplet ou bien faire Toolkit.getDefaultToolkit().getImage(...);.

Désolé de te contredire mais la réponse se trouvait encore dans la documentation Java : (dans la classe JApplet)

Methods inherited from class java.applet.Applet
destroy, getAppletContext, getAppletInfo, getAudioClip, getAudioClip, getCodeBase
, getDocumentBase, getImage
, getImage, getLocale, getParameter, getParameterInfo, init, isActive, newAudioClip, play, play, resize, resize, setStub, showStatus, start, stop


TUER : http://tuer.tuxfamily.org/tuer.php

yeah! vive java
Messages postés
15814
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
131
Salut,

Normal, la fonction getImage n'existe pas dans ta classe Personne !

Cette fonction existe pour toute les classes de SWING par exemple, mais pas pour une classe "classique". Utilise donc le Toolkit de Java.
______________________________________
DarK Sidious
Messages postés
5
Date d'inscription
lundi 16 janvier 2006
Statut
Membre
Dernière intervention
16 avril 2008

C'est bon ça fonctionne, merci beaucoup pour votre aide

à [auteur/GOUESSEJ/684669.aspx gouessej]: effectivement je n'ai pas cherché dans JApplet car je ne pensais pas pouvoir la trouver là.