|
•Давай по порядку. - nezemlyanin, 18.06.2013 11:29:17 |
|
|
Вот эту твою фразу я возьму как ключевую (на этот раз): > Сколько там всего у юнита скорости было в начале хода 7, 8 или 80 не принципиально, важно лишь, хватит ли остатка для движения на следующую клетку. Рассмотрим снова вариант про двух юнитов у одного из котрых 7 скорости а у другого 8. Оба юнита проезжают по диагонали 4 клетки и тратят таким образом по (2^0,05)*4 = 5.657 скорости (это, как ты упомянул в самом первом сообщении, если учитывать что по диагонали тратится корень из 2 скорости. По твоим вычислениям получилось бы, что юниты тратят по 6 скорости). Имеем: у первого унита осталось 7-5,657 = 1,343 скорости; у второго юнита осталось 8-5,65 = 2,343 скорости. Далее: первый юнит не может проехать по диагонали, т. к. (2^0,05) больше чем 1,343, а второй юнит проезжает по диагонали еще одну клетку и получается что он потратил в общей сложности (2^0,05)*5 = 7,071 скорости. Баг начинается уже здесь, т. к. у юнита отображается что у него есть еще остаток из целой одной скорости, хотя 8 - 7,071 = 0,929. > Так и есть. То есть, здесь ты уже не прав. Не таки и есть а так и нет.
Я понимаю что здесь происходит округление 7,071 до 7 и поэтому юнит с восьмью скорости может проехать еще одну клетку. В связи с этим, я предлагаю это же округление добавить к юниту с 7 скорости и позволить ему проезжать 5 клеток по диагонали (такиой вариант считаю наиболее разумным). Но если уж это разработчики посчитают невозможным, то пусть уберут округление у юнита с 8 скорости. Иначе получается несоответствие.
P.S.: у юнитов с 14 скорости и 15 скорости аналогичная ситуация |
|
| |