Цитата:
Сообщение от Stone
все же обращение к очень большому массиву будет реально тормозить систему. лучше разнести на много маленьких, опять же по координатам.
|
Массив не обязательно должен быть по каждой точке. Разделить поле на квадраты размером пикселей 20, например, и делать массив квадратов.
А на счет юнитов - так вобще им столкновения просчитывать не обязательно друг с другом. Представьте, что идет отряд людей навстречу другому отряду в реальной жизни - они че, пройти друг сквозь друга не смогут и тупо встрянут? Да и лишние страдания игроку тока будут, когда его юниты начнут толкаться и встревать, капая ему на нервы. Играл во много компутерных игр, где юниты не мешались друг-другу - так в глаза прежде всего бросалась не эта "нереалистичность" - а удобство игры.
То есть, остается прогить как препятствия тока здания и препятствия карты (горы и т д). Их во-первых намного меньше, они неподвижны и больше по размерам - то есть квадраты массива можно увеличить и до 50 пикселей а то и больше
Ну а чтобы юниты не сбивались в одного при тычке мышкой "идти туда", делается простой алгоритм - каждому юниту задается не именно та точка, где нажата мышка - а рандомное значение вокруг нее. В результате даже довольно большая толпа вполне красиво выстраивается в квадрат размером столько-то на столько-то пикселей (задается вами, можно сделать в зависимости от кол-ва юнитов в толпе или их размеров)вокруг точки (получается даже что-то вроде построения). И идут к этой точке не как роботы - паралельно друг-другу, а под разными углами, то есть, тоже "реалистично"
|