Создание ролевой компьютерной игры 37) Реальное время
Школа программирования
Разработка ролевой игры
37) Реальное время
Сейчас несложной модификацией кода мы превратим нашу пошаговую ролевую игру в программу, работающую в реальном времени, тем
самым еще более приблизив ее к стратегической! Для этого введем в главном модуле Main настроечный флажок, изменение которого
в любой момент времени переведет игру из пошагового режима в режим реального времени!
Архитектура программы организована таким образом, что для реализации режима реального времени достаточно будет вызывать процедуру
MonstersStep с некоторой периодичностью, например, раз в три секунды. В таком случае долгое размышление играющего над ситуацией
будет постоянно прерываться атаками противника.
Реализуем процесс таких периодических атак путем постоянного отслеживания статуса клавиатуры, и пока никакая из клавиш не
будет нажата, станем проверять время, прошедшее с момента последней проверки и по истечении трех секунд вызовем процедуру
атаки монстров. Время определим с помощью стандартной процедуры GetTime (стандартный модуль Dos).
if RealTimeFlag then begin
GetTime(h,m,s,hund);
lt := h*60*60 + m*60 + s; while not KeyPressed do begin
GetTime(h,m,s,hund);
lt2 := h*60*60 + m*60 + s; if lt2-lt > 3 then begin
MonstersStep;
break end; end; end;
k := ReadKey; case k of
' c ' : ShowHeroFullInfo;
...
Изменение в любой момент времени значения флажка RealTimeFlag приведет к переключению из пошагового в режим реального времени
и обратно.
Столь простое и легкое воплощение принципиально нового режима игры в очередной раз свидетельствует о надежности, гибкости
и расширяемости нашей игровой архитектуры!
Далее: - добавляем в программу возможность поедания пищи.
Еда - одна из оригинальных игровых концепций, которая не всегда реализуется в коммерческих играх, однако по праву считается
одной из увлекательных идей в roguelike-играх. Каждый игрок характеризуется таким параметром, как усталость - по мере ее
накопления при движении и сражении повышается вероятность снижения здоровья. А когда усталости набирается много, здоровье
теряется очень быстро. Снимается же усталость принятием пищи - еще одного типа игровых предметов.
Исходный код текущей версии для Turbo Pascal (всегда проверен и работоспособен, главный файл - main.pas):