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

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

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

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

Добрый день!
Проект на C++ opengl.
С помощью Magic_GetNextEvent получаю событие, у которого есть дескриптор частицы.
Как можно узнать тип частицы по её дескриптору?
Теоритический пример:
У эмиттера есть 2 типа частиц, создаю для обоих action на создание частицы, которые шлют события.
Я их отлавливаю, и хочу для каждого типа частиц запустить проигрывание своего звука.
Собственно не нашел как по дескриптору определить тип частицы.
Прошу помогите!
cerbery
 
Сообщения: 7
Зарегистрирован: Вт фев 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
 
Сообщения: 841
Зарегистрирован: Чт янв 15, 2009 2:57 pm

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

Сообщение cerbery » Ср май 15, 2019 5:04 pm

Спасибо! То что нужно.
А вы не думали добавить в API подобный метод? или другим способом получать информацию о эмитере и типе частит, для которого приходит событие?
Было бы удобно иметь эти данные, потому как одного лишь события о непонятно какой частице мало.
Как пример:
Имеем что-то бодобие феерверка из 1 эмиттера и 2 типов частиц
1 - ядро, которое летит и взрывается
2 - отлетающие частицы
Например хотим при разрушении ядра проигрывать один звук, апри разрушении отлетающих частит другой.
Сейчас это невозможно, нельзя идентифицировать тип частиц...
cerbery
 
Сообщения: 7
Зарегистрирован: Вт фев 19, 2019 5:29 pm

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

Сообщение Odin_KG » Вт май 21, 2019 2:42 am

Пожалуйста

А вы не думали добавить в API подобный метод?

Честно говоря, мне кажется, что API уже и так перегружено всякими сложностями. Я вообще сомневаюсь, что многие лезут в эти "дебри". Т.е. я бы сделал, если бы видел, что многие в этом нуждаются, а так... это достаточно редкое явление, поэтому я вам просто дал в руки "начинку", чтобы вы могли вытащить эту информацию.
Аватара пользователя
Odin_KG
Administrator
Administrator
 
Сообщения: 841
Зарегистрирован: Чт янв 15, 2009 2:57 pm


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

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

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