Welcome Anonymous !


 

Unity 台灣論壇

程式相關

請問有關時間倒數的問題

Script
各式程式腳本等相關議題,歡迎來此分享及討論。

請問有關時間倒數的問題

文章HeavenWing » 2012年 1月 8日, 13:04

因為做的遊戲裡面有一項當時間倒數歸0時,會轉成GAMOVER的畫面,然後選擇是否重新開始
但是卻發現只要按重新開始,那個倒數的秒數還是繼續-1、-2,變成會一直返回GAMOVER畫面。
我大概知道我一定是有少了些東西,卻不知道要從那裡去找缺少的~"~

目前我所需的就是在經由GAMEOVER頁面回到原關卡時,時間也能重新計算這樣子~"~

倒數的程式碼長這樣:
代碼: 選擇全部
var isPaused : boolean = false;
var startTime : float;
static var timeRemaining : float;

function Start()
{
guiText.material.color = Color.green;
startTime =120.0;
}
function Update() {
if (!isPaused)
{
DoCountdown();
}
}

function DoCountdown() {
timeRemaining = startTime - Time.time;
ShowTime();
//Debug.Log("time remaining = " + timeRemaining);

if (timeRemaining < 0)
{
timeRemaining = 0.0;
isPaused = true;
TimeIsUp();
}


}

function PauseClock()
{
isPaused = true;
}

function UnpauseClock()
{
isPaused = false;
}

function TimeIsUp()
{
   if(timeRemaining == 0)
   {
      Application.LoadLevel("GameOver_1"); 
      
      
   }
}

function ShowTime()
{
var minutes : int;
var seconds : int;
var timeStr : String;

minutes = timeRemaining/60;
seconds = timeRemaining % 60;
timeStr = minutes.ToString() + ":";
timeStr += seconds.ToString("D2");

if(timeRemaining<60)
{
   guiText.material.color = Color.cyan;
}
if(timeRemaining<30)
{
   guiText.material.color = Color.red;
}

guiText.text = timeStr;
}


然後GAMEOVER畫面中,點確定返回原本關卡的程式碼:
代碼: 選擇全部
var customSkin : GUISkin; 

function OnGUI () {
GUI.skin = customSkin;

   if (GUI.Button(Rect(500,330,150,150), "")){
      Application.LoadLevel("river");
    }
}


有人可以幫忙看看是怎麼回事嗎?先謝謝大家了Q___Q
頭像
HeavenWing
木炭級會員
木炭級會員
 
文章: 1
註冊時間: 2011年 7月 23日, 22:12

Re: 請問有關時間倒數的問題

文章dave0629 » 2012年 1月 13日, 03:51

基於你的code所做的修正(在你所貼的code中的18行):
代碼: 選擇全部
timeRemaining = startTime - Time.timeSinceLevelLoad;
頭像
dave0629
水晶級會員
水晶級會員
 
文章: 221
註冊時間: 2009年 7月 25日, 11:29


回到 程式相關

誰在線上

正在瀏覽這個版面的使用者:沒有註冊會員 和 2 位訪客