누구든지 초보자를 도와 게임에 타이머를 얻을 수 있습니까? : P 나는 지난 1-2 일 동안 다양한 접근법을 시도 해왔다. 여기에 해결책이있는 사람이 있습니까?애플릿에 타이머를 구현 하시겠습니까?
기본적으로 가장 빠른 시간에 6 개 항목을 수집하는 것이 목표 인 게임이 있습니다. 물론 사용자가 어디로가는 지 추적 할 수있는 곳에서 0부터 카운트하는 타이머 디스플레이가 필요합니다.
여기에 관련 클래스 -
public class StartingPoint extends Applet implements Runnable{
Task t = new Task();
Menu menu = new Menu();
int num;
public static enum STATE{
MENU,
GAME,
};
public static STATE State = STATE.MENU;
public void init() {
setSize(800, 600);
}
public void start() {
if(num < 2){
Thread thread = new Thread(this);
thread.start();
num++;
}
}
public void run() {
if (State == STATE.GAME) {
while (true) {
repaint();
try {
Thread.sleep(17);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
} else if (State == STATE.MENU) {
while (true) {
repaint();
try {
Thread.sleep(17);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
public void paint(Graphics g) {
if (State == STATE.GAME) {
ball.paint(g);
} else if (State == STATE.MENU) {
menu.render(g);
}
}
}
public class Task extends TimerTask {
int seconds;
int minutes;
public String time;
public void run() {
seconds++;
if (seconds == 60) {
seconds = 0;
minutes++;
}
String s = String.valueOf(seconds);
String m = String.valueOf(minutes);
if (seconds < 10) {
time = (m + ":0" + s);
} else {
time = (m + ":" + s);
}
}
}
public class Start {
private static Timer ourClock;
private static TimerTask ourTask;
public static void update(){
ourClock = new Timer();
ourTask = new Task();
ourClock.scheduleAtFixedRate(ourTask,1000,1000);
}
}
내가 많이 알고의 골격이지만, 누군가가 내 애플릿에 작업 클래스의 문자열 "시간"을 표시 좀 도와주세요 수 있다면, 그것은 것 정말 도움이됩니다.
감사합니다.
P.S 참고로 JApplet이 아닌 애플릿입니다. : -/ 또한 현재 가지고있는 수업을 사용하지 않는 방법을 생각해보십시오. 어떤 제안이든 열려 있어도이 일을 끝내고 싶습니다. 며칠 동안 작업하고 있습니다 ...
"time"문자열을 페인트하려고하면 오류 메시지가 표시됩니다.
Exception in thread "AWT-EventQueue-1" java.lang.NullPointerException: String is null
at sun.java2d.SunGraphics2D.drawString(SunGraphics2D.java:2880)
at Start.paint(Start.java:23)
at StartingPoint.paint(StartingPoint.java:229)
at StartingPoint.update(StartingPoint.java:215)
at sun.awt.RepaintArea.updateComponent(RepaintArea.java:255)
at sun.lwawt.LWRepaintArea.updateComponent(LWRepaintArea.java:47)
at sun.awt.RepaintArea.paint(RepaintArea.java:232)
at sun.lwawt.LWComponentPeer.handleJavaPaintEvent(LWComponentPeer.java:1312)
at sun.lwawt.LWComponentPeer.handleEvent(LWComponentPeer.java:1196)
at java.awt.Component.dispatchEventImpl(Component.java:4959)
at java.awt.Container.dispatchEventImpl(Container.java:2292)
at java.awt.Component.dispatchEvent(Component.java:4705)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:746)
at java.awt.EventQueue.access$400(EventQueue.java:97)
at java.awt.EventQueue$3.run(EventQueue.java:697)
at java.awt.EventQueue$3.run(EventQueue.java:691)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:75)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:86)
at java.awt.EventQueue$4.run(EventQueue.java:719)
at java.awt.EventQueue$4.run(EventQueue.java:717)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:75)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:716)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
내가 왜 '애플릿'이고 'JApplet'이 아닌지 물어봐도 될까요? Swing조차 JavaFX 8을 지원하는 EOL입니다. AWT는 너무 오랫동안 죽어 있었기 때문에 피요르드에게 피고인이라고 주장 할 수는 없었다. –
나는 Youtube의 Mybringback에서 Java의 기초를 배웠다. 이 게임은 그가 튜토리얼에서 만든 게임을 기반으로합니다. 어떤 이유로 그는 애플릿을 사용했습니다. 나는 이유를 모른다. 비디오는 2012 년에 제작되었지만, 사람들이 말하는 방식으로 애플릿이 구식이었던 것처럼 들립니다. ?? 두 번째 게임에서는 확실히 JApplet을 사용합니다. 그래도이 게임으로 돌아 가기에는 너무 늦었습니다. 거의 끝났습니다. (변환이 쉬운 것이 아니라면) – RJrules64