2014-04-01 3 views
1

나는 타이머가 작동 할 때마다 함수가 임의의 객체를 생성하는이 게임을 사용합니다.코로나 SDK (LUA) 타이머 및 카운트 다운

function showCountDown (event) 
    -- Condition to show and hide countdown 
    if countDownNumber == 0 then 
     spawnShit = 0 
     timer.cancel(timerSpawn) 
     timer.cancel(countdownTimer) 
     print('NO MORE SPAAAAAAAAAAAAAAAWWNS') 
    end 

    if countDownNumber >= -1 then 
     countDownNumber = countDownNumber -1 
     countDownText.text = countDownNumber 
     spawnShit = 1 
    end 

    if score == nil then 
     score = 0 
    end 

    return true 
end 

문제는 타이머가 어떻게 든 0 대신 -2로 멈추라 고 주장하는 것이므로 매우 실망 스럽습니다. 내가 뭘 잘못하고 있는지 누가 알 수 있습니까? 어쩌면 당신은 다른 이벤트를 트리거하는 카운트 다운 타이머를 만드는 더 좋은 방법이 있습니다. (오브젝트 생성을 멈추고, 승리/실패/일시 중지 화면 등을 시작합니다.

또한 테스트 중에 콘솔을 보면서) showCountDown spawnShit = 0 후, timer.cancel이 (myTimers가) 내가 이벤트를 트리거 타이머를 취소하고 있습니다 때문에 홀수 인, 해고, 약 3 배 추가 트리거됩니다.

답변

1

을 당신이

if countDownNumber >= -1 then 
    countDownNumber = countDownNumber - 1 

countDownNumber이 더 크거나 e가 될 때마다 if 블록이 입력됨을 의미합니다. qual를 -1, 즉 양수, 0 및 -1로 설정합니다. 블록 내부에서는 1 씩 감소하므로 마지막 값은 -2가됩니다. 잘 simpel

if countDownNumber >= 1 then 
     countDownNumber = countDownNumber -1 
+0

:

당신은 아마 마지막 값 0을 만들 것입니다 >= 1을합니다. 나는 단지 내가 앉아서 -1이나 0과 같거나 더 크다면 작동 할 것이라고 생각했지만, 1로 설정하면 매력처럼 작동했습니다. – MNDevelopments