Показать сообщение отдельно
Старый 26.05.2009, 10:49   #5
Randomize
[object Object]
 
Аватар для Randomize
 
Регистрация: 01.08.2008
Адрес: В России
Сообщений: 4,371
Написано 2,477 полезных сообщений
(для 6,865 пользователей)
Ответ: Про клавиши

Сообщение от SBJoker Посмотреть сообщение
Вот эта строчка потенциальный источник ошибок:
Local mbUP% = KeyDown(KEY_UP) + KeyDown(KEY_W)
В некотором случае возможно получения значения 2
А далее по коду, о чудо, мы и нарываемся на ошибку:
If (mbUP+mbDown+mbLeft+mbRight)=2

здесь автор хотел видимо проверять нажатие сразу 2х кнопок для диагонального движения. Однако выше приведённый код способен генерировать значение 2 в одной переменной, что при нажатии ещё одной кнопки даст сумму больше 2х, т.е. 3 или даже 4! (хотя теоритический максимум .

Не уверен что это решит проблему, однако хуже не будет если сделать правильно.
Так и задумано. Зачем мне три клавиши? Не нужно.
Условие продумано и не ошибочно. Т.к. KeyDown возвращает булевые значения. Тоесть числа.
__________________
Retry, Abort, Ignore? █
Intel Core i7-9700 4.70 Ghz; 64Gb; Nvidia RTX 4090 3070
AMD Ryzen 7 3800X 4.3Ghz; 64Gb; Nvidia 1070Ti
AMD Ryzen 7 1700X 3.4Ghz; 8Gb; AMD RX 570
AMD Athlon II 2.6Ghz; 8Gb; Nvidia GTX 750 Ti
(Offline)
 
Ответить с цитированием