Construct Community

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » Construct Community » Вопрос-ответ » Вопрос и не один


Вопрос и не один

Сообщений 21 страница 40 из 43

21

Санчес,
Привет друг мой.

Покажешь использование ForEach?

22

C Angle - придется научиться ее использовать. Теперь вместо 2 у меня снова будет 300 фишек в лэйауте. И создавать пушки - система умрет. Надо их просчитывать как ты сказал - через Дистанцию и Угол.

В связи с Углом - вопрос.
Одна Пушка в носу. Одна в корме. у каждой 270 градусов (т.е. больше 180 - что заложено в Angle) сектор обстрела. Для первой пушки понятно - от -135 до 135.

А вот как быть со второй? у нее от -45 до 45 - только вот беда - направление движения - не 90, а все-таки те же 270.
Если просчет идет с Фишки ее 0 всегда в носу - то записать 45 / -45 - возможным не представляется. Нужна типа еще одна Фишка, которая смотрит назад... Это пока все, что смог придумать. Такое решение вопроса - 620 - фишек в игре...(((

Отредактировано dima111 (2012-12-17 14:53:47)

23

Есть еще вариант - но он охеренно сложный - уйти от конфигурации пушек.

Сделать примерно так с -180 до -135 (1 пушка), с - 135 до - 45 (2 пушки), с -45 до 45 (1 пушка), с 45 до 135 (2 пушки), с 135 до 180 (1 пушка). Прерывание в точке -180/180, ну и рассчитывать количество пушек в залпе в секторе обстрела - все с ног на голову...

24

Привет.
ForEach - просто цикл, каждый раз выбирающий новую копию заданного объекта. А вообще, он здесь не нужен будет, т.к. выбираться будут только объекты, удовлетворяющие условию.

Можно использовать OR для пушки на корме.
К примеру:
Угол между врагом и нами меньше -45
OR
Угол между врагом и нами больше 45

Просто добавь два нужных события и поставь ещё одно событие - OR - между ними. В теории, должно работать)

25

Есть така тема - OR - слышал от импортных - все как один жалуются - не поймут когда работает, когда нет. Так, что я это даже не рассматривал... Кстати - никому не рекомендую - OR.

В 3Д Максе этот вопрос мой решен супер классно! - там можно поставить -3560 градусов и прога понимает, что это какое-то число целых оборотов, и какая-то одна часть этого оборота.

Кстати, попробую записать значение  -190, может сработает...

26

Можно просто считать эту пушку двумя с углами обстрела от 180 до 45 и от -180 до -45.
То есть без OR, просто сделать 2 похожих события.

27

Да, точно так - это ровно как в моем посте - 23.

Кстати - попробовал с OR - работает)

http://files.mail.ru/BNFAC4 - надо покружить фишкой вокруг синей

Никогда не сомневался в твоей гениальности ))))

А с этим  -490 - не работает.

Отредактировано dima111 (2012-12-17 16:25:05)

28

dima111 написал(а):

А с этим  -490 - не работает.

Ну естественно. Констракт понимает только отрицательные (от 0 до -360) и положительные (от 0 до 360) значения угла.

29

Ув KaMiKaZa,

Это бы решило проблему, но боюсь - не понимает. Только до -180
http://files.mail.ru/WRVKXG

Ну, или я не знаю синтаксис, чтобы включить -360. Если знаете - поделитесь плз.

30

Angle выдаёт значение от -180 до 180, причём 0 остаётся в том же направлении, что и при вычислении угла спрайтов и т.п.

31

dima111 написал(а):

Ну, или я не знаю синтаксис, чтобы включить -360. Если знаете - поделитесь плз.

Синтаксиса то и нету. Это придётся лезть внутрь самого кода программы. Но, -360 градусов - это тот же ноль, также как и 360.
А вообще, если нужны отрицательные углы... Можно проверить. К примеру, если значение меньше -360  -  для примера к -420 прибавлять 360. Получится тот же угол, но просто снимется полный оборот по окружности.

32

Сделал. Надо добавить в условие - пикать ближайшего!)

Отредактировано dima111 (2012-12-18 05:20:22)

33

Может перестать работать, если пикать ближайшего перед проверкой на нахождение в зоне обстрела.
Так что Pick Closest должно стоять ниже проверки углов и дистанции.

34

Принято.
Я сейчас переделываю фишки - работы на день.
Я сделал карту, сделал базы.
Есть сценарий для Врага. Но было бы здорово это оцифровать. Часть мне понятна - другая не очень.

Враг бродит по поля не бесцельно.
Основная задача главных фишек Врага навязать бой Другу при выходе из базы и по возможности уничтожить - он силнее. При этом он не может находиться все время у базы. Он находится часах в 10 хода от базы Друга или в 7 часах полным ходом.

В этой связи у базы должен постоянно находится часть мелких фишек Врага - по сценарию 4-8 мелких Фишек. Если главные фишки Друга выходят из базы часть мелких Фишек Врага его отслеживает, другая часть опопвещает главные фишки Врага. С момента как главные силы оповещены - они сразу же выдвигаются на перехват. Обнаружения может и не произойти - по причине (к примеру) ночного времени суток. Установить есть ли Друг еще в базе - Враг не имеет возможности, ну разве, что на 4-й день.

Главная задача главных фишек Друга - не вступая в боестолкновение нарушить коммуникации Врага. Для этого у меня создаются транспортные Фишки врага, которые выходят из одного примерно места на территории Врага и идут тихим ходом в другое место на нейтральной территории примерно 2 дня. Идут они поначалу по одному и без охранения. Но если Друг уничтожает 3-4 транспортника, то движение прекращается на время.

В этой связи меняется задача главных фишек Врага. Теперь его задача - охрана коммуникаций. Транспортники собираются 10-15 караваном и главных фишки Врага его сопровождают.

Задача главных фишек Друга не меняется - надо нарушить коммуникации Врага. По-любому необходимо атаковать транспортники, но прежде, чем он до них доберется - придется вступить в бой с главными фишками Врага.

Есть также задача мелким фишкам Друга - они скоростные, уничтожить Главные Фишки Врага на его стоянке. При этом их выход из базы может быть обнаружен и тогда - боестолкновение, либо же отход перекрыт - и тогда тоже боестолкновение.

Это всего лишь локальный сценарий. Суперпозиция следующая - транспортники Врага тащат войско (этого в игре нет) и если его станет в достатке (определенное количество транспортников достигнут пункта на нейтральной территории - база Друга будет ими уничтожена. Ну и все фишки Друга, что в базе.

Для Врага также не сахар - его силы примерно в 1,5 раза больше чем силы Друга. Но если он не возьмет базу Друга, то с внешнего периметра примерно через 1 год к Другу подойдет подкрепление, что сделает силы Друга в 1,5 раза более сильными. чем силы Врага.

Как-то так.

35

Санчес - попробовал поставить ниже условия проверки дистанции - НЕ РАБОТАЕТ.
Придется оставить его как есть - в самом верху.

36

Тогда может случиться примерно такое:
Около фишки 2 врага, но под пушку попадает тот, который дальше. Но мы пикаем ближайшего, а он вне зоны обстрела, следовательно фишка не стреляет, хотя допустимые цели есть.

37

Именно на этом я и споткнулся, когда стал объединять проект в один через листы событий. Что работает для пары - не работает для 2-х и более объектов одной семьи. Вроде отладил...
Так теперь удалось разрешить - система абстрагируется от всех, кто дальше. Оставляет одного - ближайшего и его уже проверяет.

http://files.mail.ru/2BHGFQ

Здесь по 2 фишки Друга и 2 Врага - посмотри в инвентарь - так их не увидеть - они по 1 пикселу.

Отредактировано dima111 (2012-12-19 01:09:24)

38

Сделал карту.
Карта на чудовищном поле 59289 на 76027 пиксел.

Даже в плохом разрешении - она на встает. Разбил ее на мелкие, сделал так, чтобы подгружались в случае появления в определенных координатах Друга. Скопирую, переделаю на врага. Либо поставлю определитель - фишка в игре.

И тут блин, опять, - проблема как ее выгружать. Всего сотня карт 526*526 пиксел.
Оно конечено можно с небольшими лэйаутами - с мгновенным переходом, но вот беда - фишка, которая на другом лэйауте - пока туда не попадешь - видна не будет.

Как это можно порешать - по-уму?

39

dima111 написал(а):

Именно на этом я и споткнулся, когда стал объединять проект в один через листы событий. Что работает для пары - не работает для 2-х и более объектов одной семьи. Вроде отладил...
Так теперь удалось разрешить - система абстрагируется от всех, кто дальше. Оставляет одного - ближайшего и его уже проверяет.

http://files.mail.ru/2BHGFQ

Здесь по 2 фишки Друга и 2 Врага - посмотри в инвентарь - так их не увидеть - они по 1 пикселу.

Отредактировано dima111 (Вчера 01:09:24)

используй ту for each, где написано ordered (упорядоченно). МОжет поможет

40

NEBR, кстати да, неплохая идея. Можно в качестве выражения порядка ставить дистанцию между фишками. Правда, немногое должно измениться)
Можно попробовать сделать маленький уровень (3 на 3 сектора, у тебя 1 сектор - 526х526)
При скроллинге камеры подгружать новые сектора и выгружать старые...

А вообще, это всё из-за поведения RTS. Я серьёзно. Это поведение генерирует сетку путей, причём для каждого объекта с RTS эта сетка своя.
У тебя это будет аж 593 на 761 клетку для каждого корабля, и то при минимальном значении точности сетки - 100х100 для одной клетки.
Как вариант, написать своё поведение, скажем, через Custom Movement и приватные переменные.


Вы здесь » Construct Community » Вопрос-ответ » Вопрос и не один


создать свой форум бесплатно