Понедельник, 25 Ноября 2024, 07:15

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Выход из колизии
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
постоянный участник
Сейчас нет на сайте
Всем спасибо всё получилось)
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг