2009-03-09 5 views
0

J'ai fait ce jeu pacman en utilisant une applet. Lorsque l'applet a terminé le chargement, il est censé afficher un graphique du 'menu de démarrage' que j'ai créé et qui dit 'Double-cliquez pour démarrer le jeu', etc. Le graphique reprend l'applet entière de 400x400. Voici le code:drawImage() pour les fichiers .png ne fonctionne pas dans l'applet Java?

public void paint(Graphics g) 
{ 
    if (! isRunning) 
    { 
     switch (result) 
     { 
      case 0: 
       showStartScreen(g); 
      break; 

      case 1: 
       showWonScreen(g); 
      break; 

      case -1: 
       showLostScreen(g); 
      break; 
     } 
     return; 
    } 
     //Code for rendering other stuff if game is here 
} 

showStartScreen:

public void showStartScreen(Graphics g) 
{ 
    Image intro=img.getImg("pacman-intro.png"); 
    g.drawImage(intro, 0, 0, this); 

} 

Cela fonctionne bien quand je lance ce local sur Eclipse, mais dans le navigateur Web, lorsque l'applet est chargé je vois juste une case vide où la l'animation de chargement de java était auparavant. Étonnamment, si je double-clique au hasard où l'applet est censé être, le jeu commence et fonctionne normalement. Donc cela me fait penser que le problème est juste de dessiner des fichiers .png en utilisant drawImage. La même chose se produit lorsque vous gagnez ou perdez la partie, elle se bloque au lieu de dessiner le graphique dont elle a besoin.

Vous pouvez voir ce here (vous pouvez utiliser les touches fléchées pour contrôler)

P.S J'utilise le double buffering ici.

Des pensées ..?

EDIT: Code pour la classe ImgHelper qui est utilisé pour charger le img:

import java.awt.Image; 
import java.net.URL; 

import javax.swing.ImageIcon; 

public class ImgHelper 
{ 
    public Image getImg(String file) 
    { 
      //Engine is the name of the base applet class 
     URL url=Engine.class.getClassLoader().getResource("assets/" + file); 
     return new ImageIcon(url).getImage(); 

    } 


} 
+0

Il est impossible de dire ce qui ne va pas. Par exemple, qu'est-ce que 'img' et comment ça charge l'image? – TrayMan

Répondre

3

Ah, j'ai vérifié le contenu de votre fichier jar.

Remplacer "pacman-intro.png" par "pacman-intro.PNG". C'est sensible à la casse.

1

-ce que les PNGs dans le bon répertoire? Est "." dans le chemin env-variable sur le serveur?

Essayez "./pacman-intro.png" à savoir

+0

oui, les chemins sont corrects, j'ai vérifié deux fois. La méthode imgHelper.getImg ajoute le/avant l'image –

Questions connexes