Узнать тип частицы по её дескриптору

Обсуждение специальной версии Magic Particles (Dev), предназначенной для разработчиков игр.

Узнать тип частицы по её дескриптору

Сообщение cerbery » Ср мар 20, 2019 5:31 pm

Добрый день!
Проект на C++ opengl.
С помощью Magic_GetNextEvent получаю событие, у которого есть дескриптор частицы.
Как можно узнать тип частицы по её дескриптору?
Теоритический пример:
У эмиттера есть 2 типа частиц, создаю для обоих action на создание частицы, которые шлют события.
Я их отлавливаю, и хочу для каждого типа частиц запустить проигрывание своего звука.
Собственно не нашел как по дескриптору определить тип частицы.
Прошу помогите!
cerbery
 
Сообщения: 5
Зарегистрирован: Вт фев 19, 2019 5:29 pm

Re: Узнать тип частицы по её дескриптору

Сообщение Odin_KG » Чт апр 18, 2019 4:12 pm

Здравствуйте! Я прошу прощения за задержку с ответом - видимо не всегда приходят сообщения о появлении новых записей на форуме.

Вообще эта информация о том как дескриптор частицы переводится в эмиттер, тип частицы и индекс самой частицы есть только внутри API.

Код: Выделить всё
// Перевод дескриптора частицы в индексы
CBridgeEmitter* FromParticleDescriptor(HM_PARTICLE particle_descriptor, HM_EMITTER& index_emitter, int& index_particles, int& index_particle)
{
   int* s=(int*)&particle_descriptor;
   index_emitter=s[0];
   int api;
   SplitHM(index_emitter, api);
   
   index_particles=((s[1] & 0xfc000000)>>26);
   index_particle=s[1] & 0x3ffffff;

   return api_data.Get(api)->bridge_emitter;
}

void SplitHM(int& hm, int& api)
{
   api=hm>>24;
   hm=hm & 0xffffff;
}

Вам всё это понимать не нужно, а нужно лишь обратить внимание на строки:
Код: Выделить всё
index_particles=((s[1] & 0xfc000000)>>26);
index_particle=s[1] & 0x3ffffff;


этот index_particles и есть то, что вам надо.
Аватара пользователя
Odin_KG
Administrator
Administrator
 
Сообщения: 824
Зарегистрирован: Чт янв 15, 2009 2:57 pm


Вернуться в Magic API

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1

cron