View Single Post
Old 01-12-2008, 03:49 PM   #8
AVE
СержантВ запасе
 
Join Date: Jan 2008
Posts: 39
Re: Таймер в Homeworld2

Quote:
Originally Posted by [FX]Storm View Post
Спасибо AVE.
Не за что.

Quote:
Originally Posted by [FX]Storm View Post
Тэн поможешь разобраться с таймером из FX18 (хочу засунуть его в обычный) Вот содержание
Могу и я.


Code:
InGameRunTimeTimerDisplay = 0
В этой переменной (далее таймер), собственно, и содержится количество секунд, прошедших с момента начала игры.

Code:
function GameTimerDisplay()
    InGameRunTimeTimerDisplay = InGameRunTimeTimerDisplay + 1
Я так понимаю, функция GameTimerDisplay() где-то вызывается через RuleAddInterval, что обеспечивает ее вызов раз в секунду.

Code:
    local iSeconds = mod(InGameRunTimeTimerDisplay,60)
    local iMinutes = (InGameRunTimeTimerDisplay - iSeconds) / 60
    local iHours = iMinutes
    iMinutes = mod(iMinutes, 60)
    iHours = iHours - iMinutes
    iHours = iHours / 60
Здесь вычисляются часы/минуты/секунды. Секунды - остаток от деления (mod) на 60, и т.д.

Code:
    local sStrToDisplay = ""
    if (iHours < 10) then
        sStrToDisplay = sStrToDisplay.."0"..iHours..":"
    else
        sStrToDisplay = sStrToDisplay..iHours..":"
    end
    if (iMinutes < 10) then
        sStrToDisplay = sStrToDisplay.."0"..iMinutes..":"
    else
        sStrToDisplay = sStrToDisplay..iMinutes..":"
    end
    if (iSeconds < 10) then
        sStrToDisplay = sStrToDisplay.."0"..iSeconds
    else
        sStrToDisplay = sStrToDisplay..iSeconds
    end
Здесь видно, что авторы не знают про format(), и делают то же самое руками.

Code:
    UI_SetTextLabelText("ResourceMenu", "lblTimerSize", sStrToDisplay)
end
Это вывод текста.
AVE is offline   Reply With Quote