Выход из колизии
|
|
ShadowZi | Дата: Среда, 06 Февраля 2013, 19:39 | Сообщение # 1 |
постоянный участник
Сейчас нет на сайте
| Собственно задача. Объект входит в зону обстрела, пелемёты начинают стрелять, перестают
Планируемое решение Зона обстрела реализована спрайтом невидимым. При колизии цели с зоной, когда та входит в зону, начинаем снимать у цели жизни, включаем анимацию пулемётов, выходит перестаём снимать. с отъёмом урона понятно и легко а вот с анимацией пулемётов не так всё просто, надо знать когда их выключать... а как я понял собитие колизии происходит постоянно. и события выхода нету...
|
|
| |
LetsOffBrains | Дата: Среда, 06 Февраля 2013, 20:33 | Сообщение # 2 |
Project SoRDeLKa
Сейчас нет на сайте
| Если коллизия происходит, то скорость анимации нормальная, иначе нулевая?
|
|
| |
ShadowZi | Дата: Среда, 06 Февраля 2013, 20:42 | Сообщение # 3 |
постоянный участник
Сейчас нет на сайте
| да, я так и хочу. Проблема в том что событие колизии происходит всё время пока находится в колизии
|
|
| |
USeR14 | Дата: Среда, 06 Февраля 2013, 21:21 | Сообщение # 4 |
RUSOriginal Studio
Сейчас нет на сайте
| А почему реализовано не как в обычных TDS: пули, попадания и пр. ?
|
|
| |
ShadowZi | Дата: Среда, 06 Февраля 2013, 21:30 | Сообщение # 5 |
постоянный участник
Сейчас нет на сайте
| мне нужен мгновенный дамаг, а во вторых экономия ресурсов. Тем более у меня игрок всё равно за наводку отвечает косвенно, к чему лишняя обработка пуль (которая учётом скорострельности а также количества противников), которая нагрузит и комп и меня)
Соответсвенно при входе в коллизию поставить скорость анимации просто а вот как вернуть ещё не придумал...Добавлено (06.02.2013, 21:30) --------------------------------------------- Вот кстати чтоб нагляднее было...
|
|
| |
MR_Borg | Дата: Среда, 06 Февраля 2013, 21:42 | Сообщение # 6 |
участник
Сейчас нет на сайте
| Может так будет нормально: В пулемете делаете флаг bool fire=false; При входе в коллизию fire=true; При выходе false; В самом пулемете: if(fire==true) { анимация }else { отключаем анимацию }
Изучаю C++ попутно пишу игру.
|
|
| |
ShadowZi | Дата: Среда, 06 Февраля 2013, 21:48 | Сообщение # 7 |
постоянный участник
Сейчас нет на сайте
| так было бы возможно, если после выхода из колизиион бы возвращал всё к состоянию первоначальному. А так пробовал устанавливать в криейт скорость проигрывания спрайтов в 0. При колизии нужную, а в дро ставить ноль. Но как оказалось ивенты работают одновременно и нулевой перетирает колизию и пулемёты вообще не стреляют
|
|
| |
MR_Borg | Дата: Среда, 06 Февраля 2013, 21:51 | Сообщение # 8 |
участник
Сейчас нет на сайте
| Почему бы не попробовать реализовать это через углы?
Изучаю C++ попутно пишу игру.
|
|
| |
ShadowZi | Дата: Среда, 06 Февраля 2013, 21:55 | Сообщение # 9 |
постоянный участник
Сейчас нет на сайте
| С тем же успехом можно сказать а почему бы мне не пойти наюнити) (к слову сказать уже полностью перешёл на код и в настройках объектов таскаю ток события). Только вот проверить нажатие клавишь и в обычном степе можно а вот колизию, только через событие... отдельное Добавлено (06.02.2013, 21:55) --------------------------------------------- Но если извращаться, то можно на основе функций колизии которые нашёл (на линиях), сделать границы а для объекта каждого сделать флаг вошёл, вышел, но это костыль...
|
|
| |
MR_Borg | Дата: Среда, 06 Февраля 2013, 22:09 | Сообщение # 10 |
участник
Сейчас нет на сайте
| Поэтому я забил на конструкторы... Попробуйте так
В коллизии bool fire=true; В самом пулемете: if(fire==true) { fire=false; анимация
}else { отключаем };
Изучаю C++ попутно пишу игру.
Сообщение отредактировал MR_Borg - Среда, 06 Февраля 2013, 22:09 |
|
| |
ShadowZi | Дата: Среда, 06 Февраля 2013, 22:10 | Сообщение # 11 |
постоянный участник
Сейчас нет на сайте
| А вот это уже идея)
|
|
| |
Randall | Дата: Среда, 06 Февраля 2013, 22:15 | Сообщение # 12 |
участник
Сейчас нет на сайте
| Если в Draw нет анимации, ее не будет.
Лучше так: из draw все убираем
в create: делаем флаг активности пулеметов act=false в степе: если act=false, то проверяем коллизию можно даже кнопкой checkObject И если коллизия есть, ставим флаг act=true и меняем скорость анимации
если act=true, то проверяем отсутствие той же самой коллизии И если ее нет, ставим act=false и скорость ставим 0
таким образом, проверка происходит постоянно, но нужное действие - только один раз
1. Adventure Mouse - мини-аркада про мыш и его друга сыр 2. Герои Реконструкции и Страйкбола - тематическая пошаговая стратегия 3. Dangerous Dave 5: Fansequel - трибьют на Dangerous Dave Всё здесь http://zvizdez.ru/download.php?list.1
Сообщение отредактировал Randall - Среда, 06 Февраля 2013, 22:17 |
|
| |
MR_Borg | Дата: Среда, 06 Февраля 2013, 22:15 | Сообщение # 13 |
участник
Сейчас нет на сайте
| Вот примерчик пухи, на каком то гм, версия хз. Если прокачать как надо норм будет. http://rghost.ru/43603447
Изучаю C++ попутно пишу игру.
|
|
| |
ShadowZi | Дата: Среда, 06 Февраля 2013, 22:23 | Сообщение # 14 |
постоянный участник
Сейчас нет на сайте
| Всем спасибо всё получилось)
|
|
| |