|
•Вобщем я разобрался и это, однозначно, баг - nezemlyanin, 18.06.2013 14:09:09 |
|
|
Скорость в памяти хранится целым числом (2 байта) равным количеству скорости, которое мы видим, умноженному на 10. То есть для юнита с 7 скорости в памяти хранится 70. Для передвижения по диагонали требуется (корень из 2) скорости (и топлива, кстати, тоже) (и это чуть больше чем 1,4) и поэтому после перемещения по диагонали в памяти из числа 70 отнимается округленное число 14. Таким образом, можно заключить, что для перемещения юнита требуется чуть больше чем 1,4 скорости, но отнимается ровно 1,4. Из за этого юнит имеющий 8 скорости может проехать сперва 5 клеток по диагонали и потом одну по вертикали/горизонтали, но не может проехать 1 клетку по вертикали и потом 5 по диагонали (так как для движения по диагонали ему требуется чуть больше чем 1,4 скорости (корень из 2) а имеет только ровно 1,4). |
|
| |