私はこのパックマンゲームをアプレットを使って作った。アプレットの読み込みが終了すると、「ダブルクリックしてゲームを開始する」などの「スタートメニュー」グラフィックが表示されます。グラフィックは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();
}
}
何が間違っていると言うことは不可能です。たとえば、「img」とは何ですか?イメージをどのように読み込みますか? – TrayMan