Я бы тебе не рекомендовал использовать примеры на сурфейсах. Они не всегда работают как нужно. Иногда вообще не работают, слишком придирчивы к видеокарте.
А как мне задать кол-во шагов, т.е. указать где его?
Покопайся в скрипте, там все должно быть. Сейчас нет времени ковыряться, да и сложного там ничего нет. Просто читай код и пытайся понять что где. Только читать нужно вдумчиво а не просто глазами пробежаться.
Трудно представить себе оффлайн или более правильно - синглплеерную игру на которую ушла бы целая неделя. Пожалуй за последние годы я сидел около недели только за масс эффектом, и то это было в этом месяце и только потому, что их аж целых три штуки. Раньше было лучше. Кампанию варкрафт 2 я мог смаковать целый месяц. В героев рубиться тоже очень долго мог, цивилку. Чет сейчас какие то одноразовые игры пошли...
Как мне сделать, чтобы юнит двигался по пути найденному?
Напомни мне, в каком виде там создается путь. Если в виде обічного пути - path_start(), если набором точек, то просто создавай новый путь и добавляй на него точки из того что дает скрипт.
Quote (cosferaps)
И ещё, по поводу v_solid: такой переменной нет в fn_astar, она случаем не становится аргументом? Вообще что означают переменные в скобках, точнее, зачем их туда писать? v_status = fn_astar(d_map,d_cursor,d_path,v_heur,v_stupid,v_solid,v_limit)
Все переменные, если они используются не в локальном куске кода должны быть обьявлены в криэйт или в скрипте, обьявленном в криэйт. Ты не туда смотришь. Переменные в скобках означают только то, что должны означать - это аргументы функции. А писать их нужно затем, что без всех необходимых данных, аргументов функции (а они хранятся как раз в переменных), она не выполнится.
Ferrumel, спасибо за поддержку и оценку. Я, честно сказать не ожидал таких отзывов о своем творчестве. На самом деле игра планировалась, но со скоростью топора пошла на дно из-за причин тут не озвучиваемых. Сейчас я просто хочу закончить подборку, хотя бы для себя.
OneAccaunt, я не стану говорить как бы я оценил твой труд, просто хочу услышать какие именно претензии к моей работе ты имеешь? Смеха ради
Ну только псевдокод. Мне лень пока разбирать весь тот ворох кода.
Итак нужно сделать ячейку непроходимой. У нас есть контроллер с сеткой и обьект стена. В криэйт стены пишем: изменить_значение_сетки(контроллер.сетка_проходимости,ячейка_по_икс,ячейка_по_игрек,значение) Все Про функции работы с сетками можно прочесть в справке. Переменные ячеек сетки у тебя на координатах обьекта, нужно только определить на какой ячейке стоит обьект. Формула расчета координат в гексах должна быть где то в скрипте.
Мой тебе совет, бери пока вещи полегче. Для меня это сложно, хотя я уже и не совсем новичок, а тебе я так поимаю это вообще потемки. Лучше сперва пойми как работают датаструктуры, по какому принципу работает астар, ну и сопутствующие вещи. Только потом пожно будет пытаться вникнуть и использовать.
все экземпляры будут двигаться по одной и той же сетке
Не знаю, заметил ли ты, но в скриптах все время идет обращение к одним и тем же датаструктурам - d_map, d_cursor, d_units, d_mil_sides и d_path. Все они инициализируются из события криэйт, а это значит что создаются они только раз, при создании обьекта контроллера. Уже хотя бы из этого можно сделать вывод, что никаких прочих датаструктур в процессе быть не должно. Далее можно перелопатить скрипт, как это сделал я и не найти там функций создания датаструктур, только их обработки. Вывод один - только если создавать множественные экземпляры обьекта контроллера можно получить это самое множество сеток.
Quote (cosferaps)
И ещё, не пойму, как делаются ячейки непроходимыми
Кажется для непроходимых ячеек предусмотрена специальная переменная. v_solid если я не ошибаюсь.
Quote (cosferaps)
объекты сделать вместо кода, а то как уровни то делать
Обьекты должны только записывать в датаструктуру нужные значения, то есть код непроходимости, например, направляй из обьекта стены через указатель в обьект контроллер. При таком раскладе можно завалить карту обьектами, которые практически не бдут влиять на производительность, потому как содержат только одно действие и миимум встроенных переменных.
В этом куске манипуляции с мышью, жирным выделены переменные которые отвечают за ключевые точки. Отследи по скриптам где они изменяются и зачем и будет тебе ответ.
К стати очень, ну очень интересный пример. Отправил в коллекцию. Никогда не мог вникнуть в матрицы и манипуляции с ними.
Если я правильно понял, он не рисует текстуру в фотошопе, а наносит ее на рендер. Это относится к области техдизайна, гуглить нужно соответственно. Много отличных уроков по вопросу есть на techdesigner.ru
Между прочим, менеджеры нашей компании, дядьки и тетки за тридцать, пишут так же безграмотно. Интересно, это с детства воспитывается или ген такой нехороший?
Добавлено (09.04.2012, 22:33) --------------------------------------------- О, да, еще мне понравилась идея тырить идеи... надо бы стырить...
А вот как известно - спорить абсолютно в любом деле - нехорошее дело, именно поэтому этот контекст мне неприемлем. А как извесно срачи споры в темах о компьютерных играх НИКОГДА не разрешатся. Так что заранее говорю - и не начинайте(спорить).
И именно поэтому нужно было непременно вставить свои пять копеек, чтобы потом так же непременно сьехать. Ладно уж, замяли, а то сейчас набежит детвора и обвинит в троллизме и демагогии.