Показать сообщение отдельно
  #7 (permalink)  
Старый 08.09.2013, 01:10
Аватар для Murdoc
Аспирант
Отправить личное сообщение для Murdoc Посмотреть профиль Найти все сообщения от Murdoc
 
Регистрация: 04.05.2013
Сообщений: 45

Сообщение от Дзен-трансгуманист Посмотреть сообщение
Ну, во-первых, за игрек отвечает синус, за икс - косинус. У жителей сириуса может и наоборот, но у нас тут такие правила.

а как же тогда должны выглядеть формулы? как ни пытался не смог разобраться. Те формулы что я написал, были взяты из исходников другой игры

Сообщение от Дзен-трансгуманист
Во-вторых, угадай, к чему приведет floor на единичном векторе, тем более, что он ассиметричен относительно нуля?

Если у тебя целочисленное поле координат, то сначала нужно умножать значение функции на длину вектора - затем округлять.
И так как округлять тут, исходя из логики симметрии, надо по модулю, то обычно это решается так:
value = value < 0 ? Math.ceil( value ) : Math.floor( value )

А для чисел в диапазоне [-2³¹, 2³¹-1] даже проще:
value |= 0

решил вообще не округлять на сервере. Только перед самой отправкой на клиент пропускаю через Math.round().

Последний раз редактировалось Murdoc, 08.09.2013 в 02:33.
Ответить с цитированием