Ответ: Про клавиши
Вот эта строчка потенциальный источник ошибок:
Local mbUP% = KeyDown(KEY_UP) + KeyDown(KEY_W)
В некотором случае возможно получения значения 2
А далее по коду, о чудо, мы и нарываемся на ошибку:
If (mbUP+mbDown+mbLeft+mbRight)=2
здесь автор хотел видимо проверять нажатие сразу 2х кнопок для диагонального движения. Однако выше приведённый код способен генерировать значение 2 в одной переменной, что при нажатии ещё одной кнопки даст сумму больше 2х, т.е. 3 или даже 4! (хотя теоритический максимум 8).
Не уверен что это решит проблему, однако хуже не будет если сделать правильно.
__________________
|