BlackStuff
offline
Опыт:
1,656Активность: |
проверка на проходимость
Как проверить, может ли юнит пройти в указанную точку?
К примеру, точка окружена другими юнитами, туда нельзя пройти, но при отдаче приказа, наш юнит всё равно побежит туда и наткнется на живую преграду. Можно запустить dummy по маршруту, но проблема в том, что проверка должна быть моментальной, а dummy будет тратить на это время, если же двигать его триггерно, то он может наткнуться на любое другое препятствие. |
23.12.2010, 00:19 | #1
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
agentex
offline
Опыт:
34,834Активность: |
никак, как сумашедший вариант писать свой паффайдинг и двигать тригерно |
23.12.2010, 00:32 | #2
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
BlackStuff
offline
Опыт:
1,656Активность: |
1 - что есть паффайдинг? (я безграмотный) 2 - уточню, в пошаговых стратегиях всё это реализовано, а мне это нужно как раз для пошаговой игры (ходы по клеткам (как в heroes), например, когда вокруг свободной клетки стоят войска, пешим юнитам туда не пройти, могут только летающие или телепортирующиеся). |
23.12.2010, 00:49 | #3
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Vampirrr
O_o
offline
Опыт:
19,286Активность: |
BlackStuff, ну можно сделать так - пикни юнита-цель и проверь вокруг него клетки (скажем их будет 8 (3 сверху, по 1 по бокам и 3 снизу)) и если все они заняты - значит к юниту подойти нельзя.
Vampirrr добавил: В худшем случае таймером с периодиком в 0.01 двигать дамми по маршруту проверяя, нет ли препятствия. |
23.12.2010, 00:55 | #4
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
BlackStuff
offline
Опыт:
1,656Активность: |
Это можно, но будет смотреться коряво, когда юниты, управляемые компом, будут делать то же самое (хоть это и нечастая ситуация). И просто очень интересно, как это реализовано в heroes (там всё заранее рассчитано)...
Можно двигать по маршруту, но это долго, т.к. комп будет проводить автобой, желаемая длительность которого - не более 10-15 секунд, иначе получится тягомотина и никакого интереса для игрока. |
23.12.2010, 00:57 | #5
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Vampirrr
O_o
offline
Опыт:
19,286Активность: |
BlackStuff:
Я немного не понял, почему это будет смотреться коряво? Кто тебе мешает создать невидимого даммика со способностью locust? Там вообще смотреться ничего не будет и проверка длится будет не более секунды. Vampirrr добавил:
А герои делались не на движке варкрафта и уж точно программировались не в Jass xD Vampirrr добавил: Кстати, в варианте с клетками даже даммики ненужны..Создать 1 рект и двигать его вокруг цели, проверяя есть ли в нем юнит. При каждом нахождении юнита увеличивай переменную. Если в конце перменная равна количеству квадратов вокруг цели - цель окружена преградами. |
23.12.2010, 01:14 | #6
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
BlackStuff
offline
Опыт:
1,656Активность: |
Vampirrr, благодарю, навел на нужную мысль, таким образом можно проверить все клетки, открытые для хода юнита, заблокировать лишние. Тему можно закрывать. |
23.12.2010, 02:11 | #7
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
MF
Что-то вокруг не так
offline
Опыт:
26,594Активность: |
BlackStuff, я когда то маялся подобным, советую почитать про A*, но офк на Варе это толково все равно не реализуемо. |
23.12.2010, 04:54 | #8
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Vampirrr
O_o
offline
Опыт:
19,286Активность: |
MF, я шахматы делал, с более-менее похожей, но все же более извращенной системой, где выяснял, куда может пойти та или иная фигура и все отлично работало. А с ректом, если зная возможные позиции юнитов и имея ограниченное кол-во возможных вариантов, можно замутить вполне нормальную системку..Но все равно много работы. |
23.12.2010, 05:43 | #9
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
MF
Что-то вокруг не так
offline
Опыт:
26,594Активность: |
Vampirrr, Шахматы это немного не то. A* - конечно не полный перебор и один из самых оптимальных способов поиска пути, но тем не менее ресурсоемок. Хотя вызываться он будет только при отдаче команды, в любом случае, автору темы придется попотеть дабы реализовать его. |
23.12.2010, 05:49 | #10
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Diaboliko
Silenced by Diaboliko
offline
Опыт:
16,108Активность: |
В целом, попробуй поискать на хайве(увы у меня трафика тютю...) И что такое А*? |
23.12.2010, 06:48 | #11
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
MF
Что-то вокруг не так
offline
Опыт:
26,594Активность: |
Ну как то так |
23.12.2010, 07:02 | #12
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|