Показать сообщение отдельно
Старый 24.11.2006, 14:50   #3
Diplomat
Дэвелопер
 
Регистрация: 07.09.2005
Сообщений: 1,519
Написано 66 полезных сообщений
(для 164 пользователей)
Re: Время в игре

Итак, повторяем пройденный материал.

Для вывода реального системного времени- см.Хелп -> 2D -> Time.
Для создания "внутреигрового" времени отлично подойдет следующая простейшая схема.
[highlight="blitzbasic"];Инициализация графики
Graphics 320,240,16,2
SetBuffer BackBuffer()

;Предустановка времени
Sec=0
Min=30
Hour=8
Day=1

;Задержка обновления времени (ms)
TimeDelay=1000

;Гл.цикл
While Not KeyHit(1)

;Ограничитель проходов
If M<MilliSecs() Then
M=M+TimeDelay
If M<MilliSecs() Then M=MilliSecs()+TimeDealay

;Обновление времени
Sec=Sec+1
If Sec>59 Then Sec=0 : Min=Min+1
If Min>59 Then Min=0 : Hour=Hour+1
If Hour>23 Then Hour=0 : Day=Day+1

EndIf

;Подсчет FPS
If FPSTime<MilliSecs() Then
FPSTime=MilliSecs()+1000
CurrentFPS=FPSCounter
FPSCounter=0
Else
FPSCounter=FPSCounter+1
EndIf

;Вывод скорости течения времени, ФПС и текущего условного времени на экран
Cls
Text 10,10,"TIMESCALE: x"+ 1000/Float(TimeDelay)
Text 10,30,"DAY "+Day+" ; "+Hour+ ":"+Min+":"+Sec
Text 10,50,"FPS: "+CurrentFPS
Flip 0

Wend

End[/highlight]
Жаль, однако, что табуляции и подсветка синтаксиса по сути не поддерживаются. Читаемость кода уходит в минус...
(Offline)
 
Ответить с цитированием