Теперь
посмотрим на код, который должен реализовать описанную логику -
в
методе TD3DGameApp.UpdateInput
изменение
положения волка происходит следующим образом
{...}
if
PressButton in m_DXInput.States
then begin
Area := TargetBtnArea(GetCursorPos); //в
данном случае проверяется нажатие на кнопку управления волком на игровой
//панели
путем наведения на неё указателя мыши и нажатия левой кнопки мыши
{...}
if
LeftUpCatch in m_DXInput.States then begin //т.
к. на больших скоростях игры потребуется прямое управление
Area := 0; //волком
от клавиатуры, то это происходит таким образом
end;
{...}
Далее
текущее положение волка заносится в специальную переменную -
Это
происходит в реализации метода TD3DGameApp.FrameMoveGameSituation
-
//положение
волка
if (Area >= 0) and (Area < 4) then begin
WolfPos := 1 + Area;
WolfPosSet := WolfPosSet + [WolfPos];
end;
и
далее -
//если
игра не остановлена из-за разбитого яйца
if not StopGame then begin
//появление нового яйца на лотке
CreateNewEgg;
//качение яиц по лоткам
RollEggs;
//появление зайца из окошка
RabbitLookedFrom;
//счетчик изменения темпа игры
IncreaseGameSpeed;
end; {of StopGame or ResetShtraf}
CrashEggs; //разбивание яиц, бег цыплят
//мерцание, сброс штрафных очков
FlashShtraf;
|