난 그냥 ME 자바의 경이로움에 탐구를 시작했지만 스레드를 만들려고 할 때 좌절지고있다 .. 아래 이상한 오류 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
매우 흥미 롭습니다. 업데이트를 받으면 게시하십시오. 또한, 재설치가 실제로 어떻게되었는지 테스트/확인 했습니까? 제 말은 업데이트 된 버전을 설치하는 데 실패했을 때 관찰 한 결과가 이전 버전 일 수 있다는 것입니다. 나는 다시 설치하고 "threadless"버전 (잘 작동한다고 언급 한 버전)을 시작한 다음 다시 최신 버전으로 다시 설치하는 것과 같은 방법으로 이것을 확인했습니다. 아니면 더 나은 아직 '스플래시 화면'을 먼저 표시하고 일부 버전 식별자를 보여줄 줄. 텍스트 필드와 '시작'명령을 사용하는 간단한 양식이 될 수 있습니다. – gnat
글쎄, 이건 당황 스럽네. 나는 '매뉴얼'방식으로 일을하고 싶다. - 나는 컴파일을 사용하고 + jar에 + jad를 추가하고, etc method ... 그것은 SDK를 사용할 때 에뮬레이터와 전화에서 모두 완벽하게 작동합니다. 나는 실수를 찾아 내고, 잘못된 것을 발견하면 다시 게시 할 것입니다. 처음에는 에뮬레이터에 대한 제안과 이후에 일반적으로 도움이되는 팁에 대한 의견이 많습니다. – Thomas