暇なときにJavaでゲームのプロトタイプをコーディングしました。このゲームは私の教育目的のためだけのものでした。Web上のJNLP起動ファイル、およびJFrameを介したメインマシンを介して正常に動作しています。
私の主な目的は、JAppletを使用して、このプロトタイプをWebブラウザで再生できるようにすることです。AppletPlayer.javaというクラスをコーディングしました。このクラスの目的は、基本的に私のゲームのメインクラスのランチャーとして機能することです。AppletPlayer.javaファイルはほとんど次のとおりです。
public class AppletPlayer extends JApplet {
private Game myGame_; // This is my game's main class
private boolean started_ = false;
public void init() {}
public void start() {
if (!started_) {
started_ = true;
myGame_ = new Game();
this.setContentPane(myGame_);
myGame_.start() // I set focusable, and enabled to 'true' in the Game's start method
// My Game class has no init method. Just a start method that spawns a new thread, that the game runs in
}
}
現在、Gameクラス自体がJComponentを拡張し、Runnable、KeyListener、およびFocusListenerを実装しています。Eclipseを介してAppletPlayerを起動すると、アプレットビューアの魅力のように機能します。ただし、Webにデプロイすると、次の2つのことがわかります。
- Windows XPマシンでは、アプレットがロードされ、メインタイトル画面に留まり、フォーカスを受け取らないため、ユーザー入力の種類を登録することはありません。
- Windows 7マシンでは、アプレットがロードされ、ゲームの音楽が聞こえますが、アプレットの画面自体は、真っ白なボックスだけをレンダリングします。
これらの問題は、IEとFirefoxの両方で発生します。
私はしばらくの間GoogleとStackOverFlowを熟読していて、解決策を掘り下げようとしていますが、運がありませんでした。私はアプレットに少し慣れておらず、正しい方向への微調整を望んでいました。