2009-03-09 5 views
0

私はこのパックマンゲームをアプレットを使って作った。アプレットの読み込みが終了すると、「ダブルクリックしてゲームを開始する」などの「スタートメニュー」グラフィックが表示されます。グラフィックは400x400のアプレット全体を占有します。ここでは、コードです:.pngファイルのdrawImage()は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); 

} 

これは、私は、Eclipse上でローカルにこれを実行すると正常に動作しますが、Webブラウザで、アプレットがロードされたとき、私はちょうどどこ空白のボックスが表示されます以前はjavaの読み込みアニメーションがありました。驚いたことに、アプレットが意図されているところでランダムにダブルクリックすると、ゲームが開始され、正常に動作します。だから、これは、問題が単にdrawImageを使って.pngファイルを描くことだと思うようになります。

ゲームに勝ったり失ったりするときにも同じことが起こります。必要なグラフィックを描画するのではなく、ハングするだけです。

あなたは、私がここにダブルバッファリングを使用しています。このhere(あなたがコントロールするには、矢印キーを使用することができます)

P.Sを見ることができます。

EDIT:IMGをロードするために使用されるImgHelperクラスのためのコード:

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

何が間違っていると言うことは不可能です。たとえば、「img」とは何ですか?イメージをどのように読み込みますか? – TrayMan

答えて

3

ああを "./pacman-intro.png"

てみてください、私はあなたのjarファイルの内容を確認しました。

「pacman-intro.png」を「pacman-intro.PNG」に置き換えます。大文字と小文字が区別されます。

1

は右ディレクトリにPNG画像はありますか? "です。サーバー上のenv-variableパスにありますか?すなわち

+0

はい、パスaee正しい、私はダブルチェックしました。 imgHelper.getImgメソッドは、/の前に画像を追加します –

関連する問題