package com.imps.tabletennis.tranning; import java.util.ArrayList; import android.util.Log; public class BallGoThread extends Thread { GameView gameView; private boolean flag=true; ArrayList<Ball> ballsToDelete=new ArrayList<Ball>(); private int sleepSpan=/*80;//40;*/10; // Workaround: (required to ensure GameViewDrawThread timing function Works) private int cntDownNum = 0; public BallGoThread(GameView gameView) { this.gameView=gameView; } public void run() { /** * @j2sNative * console.log('BallGoThread<<GO!'); */{} while(flag) { //Log.d("BallGoThread","run..."); ballsToDelete.clear(); for(Ball b:gameView.alBalls){ b.go(); if(b.isInHole()){ if(b==gameView.alBalls.get(0)){ b.hide(); } else{ ballsToDelete.add(b); } } } gameView.alBalls.removeAll(ballsToDelete); boolean allBallsStoppedFlag=true; for(Ball b:gameView.alBalls){ if(!b.isStoped()){ allBallsStoppedFlag=false; break; } } if(allBallsStoppedFlag){ if(gameView.alBalls.get(0).isHided()){ gameView.alBalls.get(0).reset(); } gameView.cue.setShowCueFlag(true); if(gameView.alBalls.size()<=1){ gameView.overGame(); } } try { Thread.sleep(sleepSpan); } catch (InterruptedException e) { e.printStackTrace(); } } Log.d("BallGoThread","thread end..."); } public void setFlag(boolean flag) { this.flag = flag; } }