http://mitglied.lycos.de/gidxgraphic/ hier unter PROJECTS kannst du meine GIDX 2D Engine runterladen. Den Quellcode gibt es nicht mehr. Ich habe es mal aus versehen gelöscht
Genau genommen ist es keine reine 2D Engine es ist gibt Funktionen für DirectInput und DirectSound. Das Abspielen von Midi Dateien wird über die WinAPI realisiert. Leider konnte ich die Engine nicht weiterentwickeln (Quellcodeverlust). Ausserdem existiert die Engine nur als Debug-Version. Es wird eine Log-Datein angelegt.
Zur Engine selbst. Ich habe zur besseren Verwaltung ein struct definiert das sämtliche Informationen über die Grafik speichert. Alles wird über diese Stuktur geregelt.
Will man ein Bild laden:
|
Quellcode
|
1
2
3
|
LPIMG g_img;
loadimage("Bitmap.bmp",&g_img,VIDEOMEMORY);
|
Collisionsabfrage
|
Quellcode
|
1
2
3
4
|
LPIMG g_img;
LPIMG g_img2;
bool collision(g_img, g_img2);
|
Objekte zeichnen an Position x 100, y 100
|
Quellcode
|
1
2
3
|
LPIMG g_img;
drawimage(100,100,g_img,NULL);
|
Wie man sieht dreht sich alles um LPIMG. Hier die definition:
|
Quellcode
|
1
2
3
4
5
6
7
|
typedef struct GIDXIMAGE
{
LPDIRECTDRAWSURFACE7 g_img;
RECT g_rect;
int x_pos;
int y_pos;
}IMG, FAR* LPIMG, FAR** LPLPIMG;
|
Ausserdem ist die Engine zuständig für die gesamte Speicherverwaltung. Speicher wird durch die Engine am Ende freigegen. Ich habe versucht soviel wie möglich zu automatisieren.