Здравствуйте уважаемые товарищи )
Ситуация такова: изучал туториал портирования частиц под движок HGE, читал хелпу. Потихоньку ковыряясь в исходниках всё таки смог подключить систему частиц в свой проект, взял стандартный эфффект взрыва Explosion2 из fire набора. Экспортировал его как API с картинками. Всё компилируется нормально. Но когда эффект этот воспроизводится в игре, то просто жуткие тормоза идут, процессор забивается под 100% ... В чом дело понять не могу.. Создаю эффект так:
MP=new MP_Manager;
MP->Initialization(MAGIC_INTERPOLATION_ENABLE, MAGIC_NOLOOP, MAGIC_CHANGE_EMITTER_ONLY, "temp");
if(MP->LoadEmittersFromFile("anm/bum.ptc")==MAGIC_SUCCESS)
std::cout<<"Emiter Loaded"<<std::endl;
MP->LoadTextures(0/*"textures/"*/,256,256,1,0.1f);
MP->CloseFiles();
MP_Emitter* emitter=MP->GetEmitter(0);
emitter->SetState(MAGIC_STATE_UPDATE);
MP_POSITION pos;
emitter->GetPosition(pos);
pos.x+=SCREEN_WIDTH/2;
pos.y+=SCREEN_HEIGHT/2;;
emitter->Move(pos);
В функции просчёта для частиц делаю так:
static unsigned long last_time=0;
double rate=0.01;
unsigned long time=GetTickCount();
if (time>last_time)
{
rate=time-last_time;
last_time=time;
if (rate>500)
rate=0.01;
}
MP->Update(rate);
MP_Emitter* emitter=MP->GetEmitter(0);
if(emitter->GetState()==MAGIC_STATE_STOP)
{
emitter=MP->GetEmitter(0);
emitter->SetState(MAGIC_STATE_UPDATE);
}
Всё по примеру впринципи. Ну и потом рендер
MP_Emitter* emitter=MP->GetEmitter(0);
emitter->Render();
ЧТо я мог сделать не так? Или что упустил ? Коментирую GetTickCounts() работает норм, тока не апдейтится соответственно, а с ним жуткие зависоны.. Подскажите чего, заранее благодарен