Java 在applet中实现计时器?
有人能帮一个新手在游戏中设置计时器吗P 在过去的一两天里,我一直在尝试各种各样的方法,但我仍然无法让它发挥作用。这里有人有解决办法吗 基本上,我有一个游戏的目标是收集6的项目在最快的时间。因此,我当然想要一个计时器显示,从0开始计数,用户可以跟踪他是如何进行的 以下是相关课程的框架-Java 在applet中实现计时器?,java,timer,applet,Java,Timer,Applet,有人能帮一个新手在游戏中设置计时器吗P 在过去的一两天里,我一直在尝试各种各样的方法,但我仍然无法让它发挥作用。这里有人有解决办法吗 基本上,我有一个游戏的目标是收集6的项目在最快的时间。因此,我当然想要一个计时器显示,从0开始计数,用户可以跟踪他是如何进行的 以下是相关课程的框架- public class StartingPoint extends Applet implements Runnable{ Task t = new Task(); Menu menu = ne
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);
}
}
我认为你从错误的角度看待这个问题 在Java中,可以在现有类中创建内部类。这将允许实例化类与其父类进行对话 实际上,根据我有限的经验,这是在Java中使用计时器的标准
public class Start {
private static Timer ourClock;
public static String time;
public static void update(){
ourClock = new Timer();
ourClock.scheduleAtFixedRate(new TimerTask(){
public void run() {
int seconds;
int minutes;
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);
}
},1000,1000);
}
}
你可以找到一些很好的例子@
虽然这个问题有点像其他问题的重复,但我认为它更像是一个Java拥有其他语言不具备的透视图或范例的问题。通常,内部类或嵌套类的使用在当今的Java中非常常见。然而,它是命中或错过与C++和C。在某些情况下,它被认为是真正的坏实践PHP,和其他人只是不允许Objul-C.<
话虽如此,仅仅因为一个人不喜欢它并不意味着它不应该被使用,只是你应该回顾一下为什么要使用它,以及它如何适应你的环境。我可以问一下为什么它是一个Applet而不是JApplet吗?甚至Swing现在也在退出JavaFX8的情况下下线了。AWT已经死了很长时间,人们甚至不能说它是在渴望峡湾。我从Youtube上的Mybringback学到了Java的基础知识。这个游戏基于他在教程中制作的游戏。出于某种原因,他使用了Applet。我不知道为什么。这段视频是2012年制作的,但顺便说一句,它听起来像是Applet已经过时了??对于我的第二场比赛,我肯定会使用JApplet。现在回去玩这场比赛已经太晚了,我已经快玩完了。除非转换很容易?那么你已经组合了开始类和任务类?这很酷,我学到了一些东西,但是现在我该如何在我的小程序上绘制计时器呢?g、 drawStringtime,300300;似乎不起作用,我只是遇到了错误。您应该能够在绘图代码中使用start.time来检索字符串。[Bah Enter提交]。这可以成为一个深入的对话,因为执行代码和渲染代码是分开的。您使用渲染代码访问执行代码背后的数据方法。我将使用什么代码来分隔执行代码和渲染代码?你能帮我写一下吗?对不起,我是新来的,所以我不知道我对你有多高的要求。如果我问得太多,别担心。你说的话并不是太多,但不幸的是,我现在无法快速回答。如果到今天晚上我的时间还没有更好的答案,我会试着做点什么。
public class Start {
private static Timer ourClock;
public static String time;
public static void update(){
ourClock = new Timer();
ourClock.scheduleAtFixedRate(new TimerTask(){
public void run() {
int seconds;
int minutes;
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);
}
},1000,1000);
}
}