gpt4 book ai didi

java - java中如何让一段代码在一段时间后运行

转载 作者:行者123 更新时间:2023-12-02 04:35:58 24 4
gpt4 key购买 nike

    @Override
protected void onDraw(Canvas canvas) {
//Drawing the background and sprites as it is a blackboard.
canvas.drawBitmap(scaledbmp, 0, 0, null);
sprite.onDraw(canvas);
boolean new_missle = true;
missileStartTime = System.nanoTime();

for (int i = missleslist.size() - 1; i >= 0; i--) {
if (new_missle) {
missleslist.get(i).onDraw(canvas);
new_missle = false;
}
if (!new_missle && (missileStartTime - System.nanoTime()) == 1000000){
new_missle = true;
missileStartTime = System.nanoTime();
}
}
}

您好,我先发布了我的代码。我在这里想做的是在板上绘制导弹,但不是同时绘制它们,而是在 x 毫秒/微秒后单独绘制它们。无论如何,这段代码不起作用,我不明白为什么。

基斯

最佳答案

你的条件是错误的,你期望你的纳秒在到达这部分代码时恰好等于“1000000”,这将是非常幸运的。您应该使用 >=

你确定你的循环应该如何工作吗?你无法控制它循环的速度(好吧,不是那样的,它不应该是你的目标),在这里,对于每个循环,你都会失去一枚可能发射的导弹。例如,可以从以下内容开始:

//as long as you have missiles, it'll try to fire
while(missleslist.size() > 0) {
if (System.nanoTime() - missileStartTime >= 1000000){
missleslist.get(0).onDraw(canvas);
missleslist.remove(0);
missileStartTime = System.nanoTime();
}
}

关于java - java中如何让一段代码在一段时间后运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30740774/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com