画面上に 3 秒ごとに複数のゲーム オブジェクトを作成して表示するのに問題があります。オブジェクトが1つしかない場合は問題ありませんが、複数作成すると問題が発生します。詳細に説明すると、メインのゲーム ループ (インターネット上の既存のものと同じもの) があり、そのゲーム ループでは、3 秒ごとに新しいオブジェクトを作成して ArrayList に追加し、ゲーム パネルを更新します。 3 秒ごとに画面上のすべてのオブジェクトを表示します。上記のコード ブロックは機能しますが、速度が速すぎて画面が画像でいっぱいになるため、定期的に実行したいと考えています。どうすればいいですか?UI スレッドのブロックを防ぐためにバックグラウンド スレッドを使用する場合、どうすればよいですか?
前もって感謝します。
ここに私のコードブロックがあります: メインスレッド部分:
while (running) {
canvas = null;
try {
canvas = this.surfaceHolder.lockCanvas();
synchronized (surfaceHolder) {
beginTime = System.currentTimeMillis();
this.gamePanel.update();
this.gamePanel.render(canvas);
}
} finally {
if (canvas != null) {
surfaceHolder.unlockCanvasAndPost(canvas);
}
} // end finally
}
MainGamePanel クラスの Update メソッド: public void update() {
int random = 5 + (int) (Math.random() * (200 - 5));
droid = new Carrier(BitmapFactory.decodeResource(getResources(),
R.drawable.image), random, 1);
Carriers.add(Carrier);
for (int i = 0; i < Carriers.size(); i++) {
Carrier CarrierTemp = Carriers.get(i);
CarrierTemp .update();
}
}