16GB
GhostOne User
offline
Опыт:
60,317Активность: |
Расстояние от героя, до края карты
В общем надо его определить,чтобы двигать даммика до края карты, можно было бы использовать, функции не дающие вылететь даммику за карту, но у меня спелл летит на всю карту, и нужно удалять когда он долетит до края и убить даммика, т.е точно знать когда убить, ибо давать всегда одно и тоже время жизни, не вариант, расстояние от героя до края карты, то всегда разное. Жду советов умнее чем, "сделать область, чуть меньше игровой зоны и при выходе из неё убивать." |
25.10.2012, 09:59 | #1
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
DimanTOoBS
offline
Опыт:
5,791Активность: |
16GB, не делать область, а использовать уже имеющуюся игровую зону xDDD вот условие вот пример |
25.10.2012, 10:15 | #2
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Sidhe
Unity3D engine
offline
Опыт:
7,721Активность: |
задать границы карты вручную и сравнивать текущее положение юнита относительно границ |
25.10.2012, 10:15 | #3
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
quq_CCCP
Я белый и пушистый!
offline
Опыт:
94,338Активность: |
16GB, у каждой карты есть макс координата X, и Y, так же самая меньшая, ну дак вот проверяем что текущие координаты и максимальные с минимальными перед тем как двигать даммика, если меньше, максимальных и больше минимальных то двигаем, иначе килл дамик... |
25.10.2012, 12:03 | #4
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Faion
Noblesse Oblige
offline
Опыт:
30,395Активность: |
16GB,
» м?
|
25.10.2012, 12:38 | #5
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
16GB
GhostOne User
offline
Опыт:
60,317Активность: |
есть код вида
потом я сохраняю х,у и двигаю до тех пор пока до них не долетим, я и так использую специальные функции чтобы не дать даммику за карту улететь
вопрос не в этом мне нужна функция чтобы подставить её в место 1000., что она вернула расстояние от героя до конца карты в указанном направлении как-то так
проверять нахождение юнита в области и т.д и я так знаю как делать, но меня интересует именно такая реализация, и поэтому я создал тему. |
25.10.2012, 16:53 | #6
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
влад10011
offline
Опыт:
2,337Активность: |
16GB, Работает если карта квадратная
Код:
Отредактировано влад10011, 26.10.2012 в 16:43. |
25.10.2012, 17:50 | #7
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
16GB
GhostOne User
offline
Опыт:
60,317Активность: |
ты ослеп? я описал что мне нужно то что кинул совершенно не то меня интересует конкретно, то что я указал не знаешь ответа не пиши |
25.10.2012, 19:29 | #8
+0/−1
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Faion
Noblesse Oblige
offline
Опыт:
30,395Активность: |
16GB, Представим игровую карту в виде квадрата(прямоугольника), у этой фигуры мы знаем координаты максимума и минимума. Т.е. по сути мы знаем об этой фигуре все. Далее у нас есть вектор, мы знаем его направление и координаты. Т.е. мы можем узнать его положение относительно фигуры. Все просчитывается простой формулой(1 курс вышмата) , которую над просто помнить, я к сожалению уже не помню. Ну или можно заюзать геометрию за 9 класс, у нас получается треугольник, у которого известно 3 угла и 1 сторона.
В общем гугли либо учебник геометрии, либо достань тетради за 1 курс по математике. мне лень самому вспоминать, честно :) |
25.10.2012, 20:08 | #9
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
J64_
offline
Опыт:
4,724Активность: |
Берём расстояние большее и равное диагонали карты. Высчитываем по твоей формуле и получится то что конечная точка всегда окажется за пределами карты. Далее пользуемся функциями описанными Faion'ом . И высчитываем расстояние до него. Можно ещё тривиальнее сделать, но мне думать лень :-) |
26.10.2012, 11:25 | #10
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
DemoN2099
annihilator
offline
Опыт:
4,418Активность: |
Эм... Поставить 4 области по краям карты и при входе в них убивать дамми?.. DemoN2099 добавил: Чем тебе этот вариант не нравится? |
27.10.2012, 05:55 | #11
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
DioD
offline
Опыт:
45,134Активность: |
а что мешает запустить 4 "рейкаста" по прямой в каждую сторону от юнита и выбрать меньшие значения?
то что описано выше ниачёмный блот рассчитанный непонятно на что, карта всегда КВАДРАТ, вычесть границы из корд юнитов и выбрать меньшую пару... |
27.10.2012, 08:15 | #12
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
16GB
GhostOne User
offline
Опыт:
60,317Активность: |
и что нам это даёт? |
27.10.2012, 09:06 | #13
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Master_chan
Полуночный командир
offline
Опыт:
15,660Активность: |
DioD:
*Прямоугольник. Но того что можно посчитать расстояние до границ карты и выбрать меньшее это не меняет. |
27.10.2012, 09:08 | #14
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
16GB
GhostOne User
offline
Опыт:
60,317Активность: |
Master_chan:
мне нужно в определённом направлении, причём тут меньшее? |
27.10.2012, 09:13 | #15
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
DemoN2099
annihilator
offline
Опыт:
4,418Активность: |
16GB:
|
27.10.2012, 09:51 | #16
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
16GB
GhostOne User
offline
Опыт:
60,317Активность: |
смотрите пост № 6 |
27.10.2012, 14:33 | #17
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
DioD
offline
Опыт:
45,134Активность: |
пост номер 6 ненужный блот, нам достаточно проверить не выходит ли любая их координат юнита за границу мира И ВСЁ.
неужели вы настолько тупы что не можете понять, что считать расстояние в данном случае не требуется, мы выбераем подходящую пару и сверяем корды напрямую.
if mod(getunitx()) >= GetRectMaxX(bj_mapInitialPlayableArea) УБИТЬ
работает для любой квадратной карты безупречно
вычитать надо для той же самой проверки, в случае прямоугольной карты, так как надо сверять 2 пары координат |
27.10.2012, 14:42 | #18
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
16GB
GhostOne User
offline
Опыт:
60,317Активность: |
мне нужно, узнать именно расстояние, а не то что он вышел за границы карты, это так сложно понять? а почему именно так я описал в посте 6, не нужно мне предлагать других методов понятно не? |
27.10.2012, 15:16 | #19
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
DemoN2099
annihilator
offline
Опыт:
4,418Активность: |
16GB, ну так сделай ещё одного дамми, двигай его до границы циклом с проверкой, в карте ли он и считай расстояние. |
27.10.2012, 15:18 | #20
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|