Hej robie se jakiś syf w HGE. Objekty rozwiązałem tak:
class Object
{
private:
HTEXTURE tex;
float xv,yv;
public:
float x,y;
float xscale,yscale;
float rot;
float speed,direction;
hgeSprite *spr;
void Render()
{
spr->RenderEx(x,y,rot,xscale,yscale);
}
void Move()
{
double radians=(direction/180)*M_PI;
xv=cos(radians)*speed;
yv=sin(radians)*speed;
x+=xv;
y+=yv;
}
Object(const char* path,float w,float h)
{
tex=hge->Texture_Load(path);
spr=new hgeSprite(tex,0,0,w,h);
xscale=1;
yscale=1;
}
~Object()
{
delete spr;
hge->Texture_Free(tex);
}
};
Gdy chcę wczytać grafikę do gry to:
test=new Object("syf.png",64,64);
A co jakbym chciał zrobić jakieś pociski i strzelanie?
Dla jednego to proste:
pocisk=new Object("pocisk.png",2,5);
pocisk->direction=kolo->direction;
pocisk->speed=10;
Ale wtedy nie mogę strzelać seriami. Myślałem nad dynamiczną tablicą obiektów czyli coś w celu tego:
pocisk[i]=new Object("pocisk.png",2,5);
pocisk[i]->direction=kolo->direction;
pocisk[i]->speed=10;
Ale wtedy musiałbym renderować każdy pocisk a to jakby niewykonalne, 666 linijek kodu na 666 pocisków:
pocisk[0]->Render();
pocisk[1]->Render();
pocisk[2]->Render();
pocisk[3]->Render();
...
pocisk[665]->Render();
pocisk[666]->Render();
Ale jak wcielić to w życie? Proszę o pomoc!