亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何在 for 循環中使用 invalidate()

如何在 for 循環中使用 invalidate()

慕村9548890 2023-10-13 14:33:52
我想展示我正在制作的游戲的鏡頭。但畫布在我的 for 循環結束時就失效了。這是同樣的問題,就像這里畫布不會更新(無效)直到整個 while 循環結束 但答案對我不起作用。在這種情況下如何使我的畫布無效?:else if (event.getX() > 1150 && event.getX() < 1300           && event.getY() > 550 && event.getY() < 700)  {    System.out.println("Schuss");    final ArrayList<Shot> positions = game.shot(100, 45, canvas);    new Thread(new Runnable()    {        public void run()        {            for (int i = 0; i < positions.size(); i++)            {                game.setCurrentShot(positions.get(i));                System.out.println(i);                canvas.postInvalidate();            }               }    }).start();}在射擊功能中,我計算所有位置。鏡頭將通過,然后我想在畫布上顯示這些位置,但這不起作用。
查看完整描述

1 回答

?
喵喵時光機

TA貢獻1846條經驗 獲得超7個贊

嘗試這個:


else if (event.getX() > 1150 && event.getX() < 1300 && event.getY() > 550 && event.getY() < 700)

{

    System.out.println("Schuss");

    final ArrayList<Shot> positions = game.shot(100, 45, canvas);

    YourActivity.this.runOnUiThread(new Runnable() {

        public void run() {

            for (int i = 0; i < positions.size(); i++)

            {

                game.setCurrentShot(positions.get(i));

                Log.d("YourApp", "i = "+i);

                canvas.invalidate();

            }

        }

    });

}


查看完整回答
反對 回復 2023-10-13
  • 1 回答
  • 0 關注
  • 213 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號