Construct Community

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

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


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


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

Сообщений 1 страница 20 из 43

1

Беда, назначил с дуру свойство - невидимый с загрузки, теперь убрал флажок с объекта, так свойство так и осталось, а весь проект - на этом свойстве. И, сами знаете, не потереть и новый не создать - объект прописан в эвенты на ключе - новый не станет, а старый если убить - так ваще все рухнет...

Лечится?

2

интересно)) ни разу не встречал такого, как вариант попробуй при старте лайоута сделать его видимым)
зы. и еще проверь Opacity, так, на всякий случай

3

Привет, спасибо!

Не сработало...(
Как вариант теперь остается попробовать - скопировать файл, создать в нем объект, назвать его тем же именем, грохнуть все эвенты, и скопировать их из старого файла. На неделю работы с непроверенным результатом...(

4

Ну еще как вариант вернуться в ранее сохраненную копию и сделать все сделанное заново. Та же неделя работы....(

5

скинь исходник) может чего придет в голову)

6

Кхм,
Тут такое дело - если констракт вылетает и не может сохранить проект - у меня такое частенько - проект уж больно большой - он оставляет некий временный файл, который при желании можно задать расширением cap и будет вам счастье.

Короче, я не потер один из таких капов. Совсем рядом с багом. Сейчас 17-30 - проект приведен в исходное состояние.))))

Вам AlttarBoy - ОГРОМНОЕ, спасибо.)

Попутно нашел еще один баг проги - и он на самом деле чудовищный!

Суть в том, что если вы оптимизируете проект, как это пришлось сделать мне - у меня в игре 60 фишек больших и малых (по плану - 300) и на каждой висит по 6-50 спрайтов, кстати, я обсуждал проект на sciraman.ru, но то-ли у меня с компом чаго-то, то-ли сайт помер (а жаль), так вот, единственный способ оптимизации - создавать клоны одного объекта и использовать номер фрейма - номер картинки как определитель - а их в исходный объект можно загрузить и сотню легко. Импортные ребята меня обучили, как создавать клонов и придавать ими свойства, о чем я подробно рассказал. И тут возникает опция - донор-то у всех его клонов один - его можно легко использовать вместо семьи. Ну, у меня и пошло поехало - где семья, а где просто название объекта-донора с определетелем клона.

А тепеь правило - Клона нельзя использовать вместо семьи. Не знаю почему - и так и так по логике вещей один зрен. Только у проги своя логика. Сейчас устанавливаю везде одинаковый способ отражения объекта - на семью....

Отредактировано dima111 (2012-12-15 17:28:12)

7

Привет!
Может, помните меня?))
Scirraman.ru, к сожалению, больше не работает...
Кстати, можно попробовать определить попадающие под прицел данной пушки цели без проверки на пересечение, только чисто математическими формулами! Ведь насколько я помню, у тебя куча объектов - это пушки со своим радиусом поражения и углом обстрела?
Если попотеть над формулами, то в итоге можно будет оставить только объекты фишек, полностью исключив все пушки, и снизив количество событий примерно на 80%.
А уж если записывать параметры пушки, скажем, в массив, лежащий в контейнере с фишкой, то и на все 90%.

Короче, всё сводится к тому, чтобы сымитировать поведение Line Of Sight в слегка упрощенном варианте.
И это, по-моему, должно решить большинство имеющихся сейчас проблем.

8

Санчес,
Привет,
Рад, тебя видеть.) Все правильно говоришь - но у меня сейчас - одна фишка - для клонов всех фишек. Ну и десятка два других объектов - сейчас можно соптимизировать еще и картинки - уже придумал как, но ломает.

С формулами будет совсем непонятно - мне непонятно.)

Тут такое дело - у меня теперь пушки возникают только когда нужно стрельнуть. Когда фишка выходит из радиуса обстрела пушки, то пушка самоуничтожается - чтобы не грузить систему. Для того чтобы система поняла, что пушка прекратила стрельбы, а не уничтожена - я ввел признак жив-мертв для пушки. Тут все понятно. Непонятно только одно, ПАМАГАЙ!

Если Фишка семьи Врага попадает в радиус стрельбы пушки, то пушка создается.
Для того, чтобы Пушка исчезла Фишка семьи врага должна выйти из радиуса обстрела пушки. Я думал до сегодня, что можно инверитровать условие. Но тут я ошибался - условие инвертируется не зеркально! Скорее всего разрабы просто меняют местами част и выражения, но на знак.

Когда пушка создана - прога идет расчитывать по второму кругу и видит Фишки семьи Врага, которые стоят вне радиуса обстрела пушки и грохает пушку. Так как пушка у меня появляется с условием - Один раз - на второй просчет - пушки Врага начинают исчезать. Условие при котором они исчезают - поймать не могу - когда исчезают, когда нет. В основном исчезают когда начинаю шевелить мышкой фишку Друга. И это не понятно, потому, что это явно не второй круг на просчет. Тут не шевелил Фишку Друга - так вся игра и сыгралась как по нотам - все путем. Интересно, что если поменять движение с Друга на Врага, то пушки начинают пропадать уже у Друга. Причем это все настолько незеркально, что я диву даюсь...

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

Как тут кстати прикреплять файлы?

9

Прикреплять файлы через файлообменники.

Насчёт формул.
Можно к каждой фишке в контейнер добавить массив, в него записывать параметры всех пушек для данной фишки.
Есть стандартное выражение Angle(x1, y1, x2, y2) - получает угол между точками. При приближении врага просто сравниваем дистанцию, сравниваем этот угол со значениями массива, отвечающими за угол обстрела каждой пушки, если всё совпадает, то стреляем из нужных пушек. А когда враг отдаляется, события просто не срабатывают, и не нужно ничего уничтожать/создавать.

Попробую сделать исходник...

10

Санчес,
Помоги вперед с  моим исходником.
Задачка простая - у обоих Фишек по 2 пушки.
Они исчезают, когда Фишка противника вне радиуса обстрела. И появляются.

Не исчезают и не появляются....((((
http://www.fayloobmennik.net/2449897

Да, не забудь, что это просто - для пары. Но у меня их 300. И понятно, что все Враги не могут оказаться в одном месте. Т.е. если не прописывать имя Фишки - то придется через Семью их на оверлап ставить. А если семья - так на второй круг прога найдет кучу из Семьи Врага вне радиуса обстрела пушки Друга и грохнет пушку. Кстати, ровно также будет и с формулой. Прога должна понять, что этот конкретно этот Враг из Семьи в радиусе обстрела.

Отредактировано dima111 (2012-12-16 01:48:54)

11

Блин, совсем нахрен слетела - после того как я ее упростил до предела.
Вообще ничего не появляется.
Даже просто - фишка не ездит RRRRRRRRSHIP - хотя у нее и стоит признак Selected = 1

12

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

Попробуй событие уничтожения пушки поставить выше события её создания. Должно помочь.

13

Санчес,
Это диагноз?(((
Это ж гребнуться сколько Событий! 7000 или около того!

Ставил выше - не помогает. Чего плохо в констракте - это то, что нет состояния объекта. Есть длящиеся действия на Объект другого объекта, но самого состояния Объекта - нет. А это на поверку - две большие разницы. Уже несколько раз в это уперся. Причем системно, полагаю эту фичу поместить - просто разарбам захотеть - ничего сложного...

Смотри, что я пытался сделать - приватную переменную - Под обстрелом. При этом на каждой фишке прописан Оппонент, под чьим обстрелом Фишка находится. Т.е. вполне возможно сделать четкое разделение на 2 части, что 3 определенные фишки Врага (к примеру) находятся под обстрелом 1 друга (Друг оверлапс их), а 197 - не находятся (инвертированное условие). Но то-ли у меня файл глючит - это все тот же файл что я стартанул весной (сколько же раз я его переделывал!). Либо инвертирование НЕ ЗЕРКАЛЬНОЕ, о чем я уже ранее в посте упоминал.

Первое - не вопрос. Думаю его сваять заново - пустую структуру, и скопировать туда все имеющиеся Объекты и События.

Второе - нихрена не лечится. И тогда только как ты сказал - каждую пушку а каждый объект. Хотя, пока писал тебе пост - сложилось решение как это сделать быстро - также как на каждой Фишке у меня прописан Приватной переменной Оппонент - также их всех можно прописать и на каждую Пушку - тем более у меня их в игре (Доноров) - не более 15. Сопировать Фишку, затем на ее основе сваять Пушку, затем на ее основе сваять все Пушки - вся недолга.)

Почему фишка не ездит? Синяя JJJJJJJJJJSHIP ездит. Красная RRRRRRRSHIP не ездит. ПП должна быть равна 1. Обе должны ездить не ПП Selected - обе описаны в игре совершенно одинаковыми Событиями...

14

Санчес,
А как работает Angle?

Вернее не так - у Пушки есть сектор обстрела 135 градусов по обе стороны от оси Фишки, т.е. 270 в общей сложности. Как это может быть с Angle-om? Да и может ли быть.

Вот во что я точно уперся - в отсутствие? в проге IF. Я не могу создавать и убивать Пушки в Констракте - не пойму где корявость.

И еще вопрос можно ли прописать как-то ЕДИНОЕ условие IF дистанция от Фишки Друг до Любой (Семья) Фишки Враг  - больше X - пушка не создается, - меньше - создается? Если разбивать на 2 События - они по разному и в разное время срабатывают, причем не понятно как - то пушки исчезают, когда не попадя, то появляются вдвое больше, чем надо - сплошная хрень....

15

Angle получает угол между точками.

Я думаю, что зная угол между фишками врага и друга, зная угол друга, зная угол обстрела пушки и дистанцию, можно узнать ещё и то, попадает ли пушка во врага.

К примеру, пушка такая, как ты описал.
Тогда угол обстрела этой пушки: от (Угол фишки - 135) до (Угол фишки + 135)
Если угол между врагом и нашей фишкой попадает в этот промежуток, а дистанция между врагом и нами меньше или равна дальности пушки, то стреляем.

Вроде всё просто )

16

Исходник можешь сделать?
Как это сделать - угол между врагом и нашей фишкой попадает в этот промежуток?

Какие нибудь косинусы? Я в этом не смыслю (((

Спросил у Яндекса - походу это арккотангенс. В констракте есть такая встроенная функция?

Отредактировано dima111 (2012-12-17 01:15:42)

17

АААА, там есть просто функция - угол между точками)

Как и с чем это есть - не знаю - надо осмысливать...

18

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

арккотангенс

Нет, вроде)
арккотангенс X равен числу, которое соответствует котангенсу X.

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

Как это сделать - угол между врагом и нашей фишкой попадает в этот промежуток?

Sanches же тебе объяснял. Угол обстрела пушки - от (Угол фишки - 135) до (Угол фишки + 135). Простым применением Angle и проверкой значения на больше\меньше можно узнать, подходит ли значение под данный промежуток. Просто поставить в события: "(Угол фишки - 135) больше Angle(X1, Y1,X2,Y2)" и "(Угол фишки + 135) меньше Angle(X1, Y1, X2, Y2)"
Мог что-то напутать. Не ругайтесь, если что. :З

Отредактировано KaMiKaZa (2012-12-17 06:16:24)

19

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

http://files.mail.ru/NEG7UP - пока работает как часы.

Буду разбираться.

ТЕПЕРЬ НЕКОЕ ПРАВИЛО. Полагаю вряд ли меня кто-то опровергнет.

Фишки в игре должны быть живые.

Я сделал виртуальных клонов (с целью оптимизации - все стало сикось насикось. Теперь возвращаюсь к 1 ГГ = 1 фишка.

20

Для нескольких всё также просто - нужные фишки будут выбираться просто сравнением дистанции с ближайшим врагом.
Можешь использовать ForEach для друга и под-событием уже сравнивать дистанцию и угол.


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


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