Java游戏开发人员:Timertask这段截取的代码
我正在做一个“太空入侵者风格”的游戏。你(玩家)在屏幕底部左右移动。每个窗口将有一个敌人,你必须移动到窗口并射击 我正在研究敌人弹出系统。敌人随机出现的窗口,应每3秒更改一次。以下是我的代码:Java游戏开发人员:Timertask这段截取的代码,java,timer,task,Java,Timer,Task,我正在做一个“太空入侵者风格”的游戏。你(玩家)在屏幕底部左右移动。每个窗口将有一个敌人,你必须移动到窗口并射击 我正在研究敌人弹出系统。敌人随机出现的窗口,应每3秒更改一次。以下是我的代码: int enemylocation = new Random().nextInt(2) +1; if(enemylocation==1){ enemy1.setFilter(Image.FILTER_NEAREST); enemy1.draw(200,170,s*1
int enemylocation = new Random().nextInt(2) +1;
if(enemylocation==1){
enemy1.setFilter(Image.FILTER_NEAREST);
enemy1.draw(200,170,s*10);
}
if(enemylocation==2){
enemy2.setFilter(Image.FILTER_NEAREST);
enemy2.draw(200,360,s*10);
}
一切正常,但随机数部分总是选择一个新的数字,因此两个窗口都在闪烁。如何延迟计时器,使其每3秒更改一次EnemLocation的值,而不是持续更改?我需要使用TimerTask,因为我没有正常工作的滴答系统
谢谢您的代码片段缺少TimerTask。无论如何,TimerTask有一个参数,您可以使用它设置延迟 请注意,这是以毫秒为单位的,因此为了等待1秒,请将延迟设置为1000。这是您可以使用的方式。我希望在这之后你不要重复你的问题
import java.util.Timer;
import java.util.TimerTask;
public class TimerDemo {
final static Random ran = new Random();
static int enemylocation = 0;
static Timer tm = new Timer();
static long startTime = System.currentTimeMillis();
public static void main(String[] a) {
tm.schedule(new TimerTask() {
@Override
public void run() {
enemylocation = ran.nextInt(2) + 1;
System.out.println("enemylocation:" + enemylocation);
System.out.println("time:"
+ (System.currentTimeMillis() - startTime) / 1000);
}
}, 1, 3000);
}
}
同样的问题你已经问了5次了…@user2302825想想看,我的朋友。我不打算为你写整件事。无意冒犯,但你正在编写游戏,那么你至少应该知道如何在游戏中嵌入/使用此代码。另外,请看我提供的链接,试着理解这篇文章。@user2302825我的朋友你运行过这个
伪代码了吗。它每3秒运行一次。我回答了您要求的部分,即定时器的使用。我还没有看到你的代码,所以我不确定那里出了什么问题。@user2302825根据你提供的信息,我真的无法告诉你。我将建议您调试代码,并找出出错的地方和原因。如果您使用的是Eclipse
,那么