1

我在做游戏。游戏有: - 一个进度条 - 一个球在屏幕中移动 - 一个“血” 球将在屏幕中移动。当它与“血”碰撞时,进度条会产生一个值,血会消失。我希望血藏在 10 秒后出现在 5 秒内。我试着去做。这是我的代码:

位图 = BitmapFactory.decodeResource(getResources(), R.drawable.ball);

私人列表血=新的ArrayList();

公共类 TimeThread 扩展 Thread{

    public void run(){
        while(h < 10000000){
            try {
                sleep(5000);
                h++;
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
    }
}

for(血:血){

            if(h%2==0 && h>0)   
            blood.onDraw(canvas);  
            }
            for (int i = bloods.size() - 1; i >= 0; i--) {
                Blood blood = bloods.get(i);
                if (blood.isCollition(x2, y2 ,x2 +bitmap.getWidth() , y2 +bitmap.getHeight())) {
                      bloods.remove(blood);
                      progressBar.incrementProgressBy(+40);
                      break;
                }
            }

当发生碰撞时,命令“bloods.remove(blood);” 已实现。但是因为“sleep(5000);” 应该图像血不会立即消失,它会等待5s。那么,它如何立即消失?请帮助我。谢谢,

4

0 回答 0