Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Написание игр _ Игра "Убеги от Х"

Автор: SaheR 22.04.2013 0:17

Здравствуйте, уважаемые форумчане.
Пишу от нечего делать игрушку на Borland Pascal'e 7.0, смысл которой - убегание персонажем (о) от злого бота (х).
Управление:
стрелочки - изменение координат персонажа "о"
кнопка End - выход из "игры"
Перед выходом маленькая задержка (хотя, у кого как - с нынешними процессорами задержка у всех разная)
Однако бот оказался на столько злой, что, почему-то, делает два шага вместо одного.

Собственно, вот код:

Спойлер (Показать/Скрыть)

Уже и так, и сяк пробовал исправить проблему - никак.
Можете натолкнуть на идею?
Исходник с кодом, написанным выше, прикреплён к сообщению.


Прикрепленные файлы
Прикрепленный файл  GAME.PAS ( 1.67 килобайт ) Кол-во скачиваний: 804

Автор: TarasBer 25.04.2013 15:12

Это не бот злой, это игрок добрый.
Делает один шаг вместо двух.
Потому что у тебя считывание клавиш не совсем правильное.
Если хочешь подробности, то гугли сканкоды.

Когда игрок нажимает стрелочку, то в ReadKey поступает не один символ, а два, сначала нулевой, а потом уже 72-75-77-80
На первом символе игрок стоит, на втором движется. А бот движется на обоих.

Правильная организация ввода такая:


keyCode := ReadKey;
case keyCode of
#0 : begin
scanCode := ReadKey;
case scanCode of
// вот тут уже пиши свои 72,75,77,80, это сканкоды
end;
end;
#27 : ... // (например, кнопка esc, у неё не сканкод, а просто)
end;

Автор: SaheR 5.06.2013 0:50

Большое спасибо!

Автор: Гость 13.11.2014 23:29

игра good.gif good.gif good.gif в паскаль абц идет!