![]() |
![]() ![]() |
![]() |
SaheR |
![]() ![]()
Сообщение
#1
|
Группа: Пользователи Сообщений: 6 Пол: Мужской Реальное имя: Александр Репутация: ![]() ![]() ![]() |
Здравствуйте, уважаемые форумчане.
Пишу от нечего делать игрушку на Borland Pascal'e 7.0, смысл которой - убегание персонажем (о) от злого бота (х). Управление: стрелочки - изменение координат персонажа "о" кнопка End - выход из "игры" Перед выходом маленькая задержка (хотя, у кого как - с нынешними процессорами задержка у всех разная) Однако бот оказался на столько злой, что, почему-то, делает два шага вместо одного. Собственно, вот код: Спойлер (Показать/Скрыть)
Уже и так, и сяк пробовал исправить проблему - никак. Можете натолкнуть на идею? Исходник с кодом, написанным выше, прикреплён к сообщению. Сообщение отредактировано: SaheR - 21.04.2013 20:29 Прикрепленные файлы ![]() |
TarasBer |
![]()
Сообщение
#2
|
![]() Злостный любитель ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 755 Пол: Мужской Репутация: ![]() ![]() ![]() |
Это не бот злой, это игрок добрый.
Делает один шаг вместо двух. Потому что у тебя считывание клавиш не совсем правильное. Если хочешь подробности, то гугли сканкоды. Когда игрок нажимает стрелочку, то в 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;
Сообщение отредактировано: TarasBer - 25.04.2013 11:15 -------------------- |
SaheR |
![]()
Сообщение
#3
|
Группа: Пользователи Сообщений: 6 Пол: Мужской Реальное имя: Александр Репутация: ![]() ![]() ![]() |
Большое спасибо!
Сообщение отредактировано: SaheR - 4.06.2013 21:02 |
Гость |
![]()
Сообщение
#4
|
Гость ![]() |
игра
![]() ![]() ![]() |
![]() ![]() |
![]() |
Текстовая версия | 25.05.2025 19:19 |