2011-06-01 53 views
-3

我沒有音樂播放器,通過獲取玩家的當前時間(30秒前)決心定時器邏輯

if(sec>=maxsec && min>=maxmin && hour>=maxhour) 
     { 
     next_buttonclick(null); 

     } 
    else 
    { 
     sec=sec+30; 
     if(sec>=60) 
     { 
      sec=sec%60; 
      min=min+1; 
      if(min>=60) 
      { 
       min=min%60; 
       hour=hour+1;     
      } 

     } 

max是媒體的持續時間快進..

當我運行這個

,它工作不正常.. PLZ修復無bug ..

也扭轉

if(sec<=0 && min<=0 && hour<=0) 
    { 
     back_buttonclick(null); 

    } 
    else 
    { 
     gettimeduration(); 
     sec=sec-30; 
     if(sec<0) 
     { 
      sec=60+sec; 
      min=min-1; 
      if(min<0) 
      { 
       min=60+sec; 
       hour=hour-1; 

      } 

     } 

在此先感謝..

+3

WOW!編寫多語言源文件對於C和C++來說已經夠難了,但是你正在嘗試3種語言......祝你好運,玩得開心! – pmg 2011-06-01 13:02:37

+0

我懷疑你是在用'&&'來表示'||',但如果你希望我們幫助你,請給我們提供更好的信息,例如代碼做錯了什麼。並處理您的格式,拼寫,標點符號和語法。 – Beta 2011-06-01 13:07:16

+1

plz嘗試自己修復你的代碼! – ereOn 2011-06-01 13:08:52

回答

0

我覺得條件

(sec>=maxsec && min>=maxmin && hour>=maxhour) 

不會做你認爲它應該。
想象一下,maxsec是30; maxmin爲6,maxhour爲0.假設sec爲17,min爲8,hour爲0.所以最大時間爲6分半鐘,當前時間爲8分17秒。

17 >= 30 FALSE and the whole condition becomes false 

的最好的事情做的時候比較次是轉換成秒,只是比較秒

(sec + min*60 + hour*3600 >= maxsec + maxmin*60 + maxhour*3600) 
+0

如果當前時間是2分鐘,答案會更好地證明問題。就目前來看,你的示例當前時間超過了樣本最大時間。 – Puppy 2011-06-01 13:26:42

+0

@DeadMG:對,8分17秒大於6分30秒,但條件說它不是:) – pmg 2011-06-01 13:29:11