0
3에서 0으로 카운트 다운하는 사용자에게 타이머를 표시하려고합니다.이 타이머는 객체를 특정 위치로 드래그하여 중지해야 할 때 표시되어야합니다 (사용자가 그 위치에서 객체를 드래그하면 리셋됩니다.특정 범위의 객체 위치에서 카운트 다운
현재로서는 Log.D를 사용하고 있습니다. 실제로는 타이머를 표시하는데 나중에 다루 겠습니다.
지금까지 내가있어 (비 작동 코드) 다음 GameManager에
public void setX(float x) {
isCheckOut = false;
// if basket is further than slotmargin
if (x + width/2 > SlotManager.SlotmarginX) {
// if basket is NOT in CheckOut area
if (this.Y < MainGamePanel.height - 80 - height/2){
x = SlotManager.SlotmarginX - width/2;
} else {
// if basket IS in CheckOut area
x = MainGamePanel.width - width/2;
isCheckOut = true;
GameManager.CheckOut();
}
}
this.X = x;
}
그리고, :
public static void CheckOut() {
Thread t = new Thread(new Runnable() {
public void run() {
while (basket.isCheckOut == true){
for (int i=3;i>3;i--){
final Handler handler = new Handler();
Timer t = new Timer();
t.schedule(new TimerTask() {
public void run() {
handler.post(new Runnable() {
public void run() {
Log.d("", "Countdown " + i);
}
});
}
}, 2000);
}
}
}
});
t.start();
}
내가 어디지고있어 같은 느낌,하지만 수 ' 루프 타이머 조합 주위에 내 머리를 감쌌다. isCheckOut == false 일 때 타이머가 중지되어야합니다. 자, 타이머를 계속해서 시작한다고 생각합니다 ... 그리고 final이 아니기 때문에 int 카운트 다운 int를 표시하기 위해 int "i"를 사용할 수 없습니까?
도움을 주셔서 감사합니다.
덕분에, 작동 .. 그것을 시도. 어떻게 구현할 것인가? 항상 실행 가능한 인스턴스는 하나 뿐이다. 현재 구현에서는 객체가 영역에 들어가기 때문에 실행 가능 파일이 4 ~ 5 회 실행됩니다. 영역 밖으로 객체를 드래그하면 count를 false로 설정하여 4 또는 5 개의 인스턴스를 모두 중지합니다. 하나만 시작하는 방법에 대한 조언이 있으십니까? –
runnable가 이미 실행 중인지를 나타내는 글로벌 부울 변수를 만듭니다. 예 : if (! isRunning) {// 새로운 실행 가능 파일을 시작하면 isRunning = true; 실행 가능한 때 그의 일 스위치는 거짓에 실행하고있다. –
Woops .. ofcourse. 감사. count 부울을 사용할 수도 있습니다. 이봐. –