Показать сообщение отдельно
Старый 25.04.2014, 21:31   #7
slee
Оператор ЭВМ
 
Аватар для slee
 
Регистрация: 05.09.2013
Адрес: Харьков, Украина
Сообщений: 25
Написано 13 полезных сообщений
(для 49 пользователей)
Ответ: Android game: Feel RoundAbout + механика игры

Сообщение от Mr_F_ Посмотреть сообщение
в 3д в юнити:

// Init
const float outOfLevelDist = 10;
const float tooCloseDist = 2;
float outOfLevelSqrDist = outOfLevelDist * outOfLevelDist;
float tooCloseSqrDist = tooCloseDist * tooCloseDist;
-----
// Update
float sqrDist = (birdPos - circlePos).sqrMagnitude;
if (sqrDist > outOfLevelSqrDist) улетели за пределы
if (sqrDist < tooCloseSqrDist) заехали в круг

Если круг находится в нуле, и считаем в 2д, то можно упростить до:

float sqrDist = birdPos.x*birdPos.x + birdPos.y*birdPos.y;
-----


по-твоему триггер будет работать быстрее 2х умножений и одного сложения в кадр?

Большое спасибо за толковый пример! Реально здорово узнать что-то новое... хотя и так все подносом - я просто не подумал о таком варианте решения задачи.

---

Я не утверждаю, что триггер будет работать быстрее - я просто спрашиваю)

На мой взгляд триггер более оптимален, тк он, в отличии от вычислений, не используется постоянно. Или я чего-то не понимаю? Поправьте пожалуйста...

Спасибо!
__________________
мой мини-блог - serge-lypii.com
(Offline)
 
Ответить с цитированием