Problème avec getImage()

Résolu
Akamaru88 Messages postés 5 Date d'inscription lundi 16 janvier 2006 Statut Membre Dernière intervention 16 avril 2008 - 16 avril 2008 à 02:16
Akamaru88 Messages postés 5 Date d'inscription lundi 16 janvier 2006 Statut Membre Dernière intervention 16 avril 2008 - 16 avril 2008 à 13:31
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

Utilisateur anonyme
16 avril 2008 à 07:11
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
3
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 129
16 avril 2008 à 06:45
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
0
Akamaru88 Messages postés 5 Date d'inscription lundi 16 janvier 2006 Statut Membre Dernière intervention 16 avril 2008
16 avril 2008 à 13:31
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à.
0
Rejoignez-nous