@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毫秒/微秒後分開繪製它們。無論如何這個代碼不起作用,我不明白爲什麼。如何讓代碼在java中運行一段時間後運行
基斯
我從來沒有使用過這個平臺......但是你不能在x秒鐘內睡覺你的程序,並在它醒來時畫畫......然後再次睡覺,然後再次喚醒,等等...... – Rash
你幾乎從來沒有會得到一個精確的1,000,000納秒的差異。每次循環迭代的運行時間總是會有一些變化,並且您將從999,999 - > 1,000,001而不會觸發if(),因爲您沒有達到那個神奇的時間差。它應該是'> =',而不是'=='。 –
什麼不起作用?你能提供一些細節嗎?請檢查你的第二條if語句的條件:是==操作符是否正確使用? –