Страница 1 из 1

Не останавливается эмиттер.

СообщениеДобавлено: Вс янв 17, 2010 7:16 pm
BlackSee
Здравствуйте!
У меня проблема с остановкой эмиттера.

Использую врапер с сайта для OpenGL.
Загружаю эмитер с диска как показано в примере к враперу, стартую эмитер с параметром SetState(MAGIC_STATE_INTERRUPT);
Если я правильно понял то эмиттер в таком случае отрабатывает один раз, и новые частицы не создаются, но у меня он почему то работает беспрерывно.
Подскажите в чем может быть проблема.

Re: Не останавливается эмиттер.

СообщениеДобавлено: Вс янв 17, 2010 8:50 pm
BlackSee
Вопрос отменяется Разобрался )))

Если эмиттер запустить изначально SetState(MAGIC_STATE_INTERRUPT); то как только он пройдет первый апдейт то у него состояние MAGIC_STATE_INTERRUPT изменится на MAGIC_STATE_UPDATE и соответственно он будет работать безпрерывно.
Потому сделал так:

MP_Manager* m_mpManager;
m_mpManager=GetMPManager();

SetState(MAGIC_STATE_UPDATE); // установил состояние MAGIC_STATE_UPDATE
m_mpManager->Update(double time); // холостой Update
SetState(MAGIC_STATE_INTERRUPT);// и после утановил состояние на MAGIC_STATE_INTERRUPT

и все замечательно, эмитер отработал и закончился.

Re: Не останавливается эмиттер.

СообщениеДобавлено: Вс янв 17, 2010 10:13 pm
Odin_KG
Здравствуйте!

Загружаю эмитер с диска как показано в примере к враперу, стартую эмитер с параметром SetState(MAGIC_STATE_INTERRUPT);

Вообще-то режим interrupt нужен для того, чтобы мягко прервать работу эмиттера. Вам его использовать в данном случае не стоит. Лучше поставьте обычный MAGIC_STATE_UPDATE. Тогда "зацикленность" эмиттера настраивайте функцией Magic_SetLoopMode().

Re: Не останавливается эмиттер.

СообщениеДобавлено: Пн янв 18, 2010 2:49 am
BlackSee
Спасибо за подсказку.

Re: Не останавливается эмиттер.

СообщениеДобавлено: Пн янв 18, 2010 8:19 am
Odin_KG
Пожалуйста.