私はただのJava MEが、スレッドを作成しようとする欲求不満になってきたの素晴らしさに踏み込んで開始しました...以下奇妙なエラー
は絶対に罰金コンパイルコードです。しかし、G600にインストールして実行するとすぐに、「Java Game Error」がポップアップします。
私はそれをjarファイルに入れてインストールするという方法は、スレッドを持たないゲームを作成して正常に動作するため動作します。
import java.util.Random;
import javax.microedition.lcdui.*;
import javax.microedition.lcdui.game.*;
import javax.microedition.midlet.*;
public class CanvasTest extends MIDlet {
Display display;
public CanvasTest() {
}
public void startApp() {
TestCanvas thecanvas = new TestCanvas();
display = Display.getDisplay(this);
display.setCurrent(thecanvas);
}
public void pauseApp() {}
public void destroyApp(boolean unconditional) {}
}
class TestCanvas extends GameCanvas implements Runnable {
Font font;
int width;
int height;
boolean running = true;
public TestCanvas() {
super(false);
setFullScreenMode(true);
width = getWidth();
height = getHeight();
Thread thisThread = new Thread(this);
thisThread.start();
}
public void paint(Graphics g) {
Random rand = new Random();
g.setColor(rand.nextInt(255), rand.nextInt(255), rand.nextInt(255));
g.fillRect(0, 0, width, height);
}
public void run() {
while(running) {
paint(getGraphics());
flushGraphics();
try {
Thread.sleep(50);
}
catch(InterruptedException ex) {}
}
}
};
注:はい、これはゲームではなく、単に私が直面している問題を示しています。
ありがとうございます!
提案は結果を変更しませんでしたが、実際これは私の最初のアプローチであり、投稿されたコードは回避策でした(残念です) 。 エミュレータの運賃については、お返事させていただきます。 – Thomas
非常に興味深い - あなたが更新を得るときに投稿してください。また、再インストールが実際に行われたことを何らかの形でテスト/確認しましたか?私は、更新されたバージョンをインストールするといくつかの失敗があった場合、あなたが観察した結果が実際に前のバージョンの1つになる可能性があるということですか?私はこれを再インストールし、 "スレッドレス"バージョン(あなたがうまくいけばうまくいきました)を起動してから、最新のものを再インストールするようなものをチェックします。それとも、私は最初に表示され、いくつかのバージョン識別子を表示する 'スプラッシュ画面'を作成する方がよいでしょう。テキストフィールドとコマンド 'Start'を持つシンプルなフォームになる可能性があります – gnat
これは恥ずかしいです、私は告白しています:私は 'マニュアル'のやり方でやりたいです - 私はコンパイル+ etcメソッド... SDKを使用すると、エミュレータと電話機で完全に正常に動作することがわかります。 私は自分の間違いを知りたいと思っています。何がうまくいかなかったかを見つけたらここに投稿します。 最初にエミュレータを提案し、その後一般的に役立つヒントを得たので、謝辞を言う。 – Thomas