Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

Anonymous

unregistriert

1

28.06.2003, 16:36

2D-Grafik-Engine

Ich habe eine Frage:
Ich will eine Engine für ein 2D spiel
Schreiben.
Was muss da alles rein?

Edited by Administrator: Titel verändert (war ursprünglich "Frage"). Bitte aussagekräftigen Titel verwenden! Danke!

Anonymous

unregistriert

2

28.06.2003, 17:01

schau dir doch mal ne existierende engine (z.b allegro) an!!

3

28.06.2003, 17:05

Das würde mich auch interessieren.

Anonymous

unregistriert

4

28.06.2003, 21:10

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.

Anonymous

unregistriert

5

30.06.2003, 20:28

der erste Gast

Dankeschön, aber ich wollte eigentlich so eine art Aufzählung...
Trotzdem danke :) :crying: ;) :P :rolleyes: ;p :-D :angel: :sleep: :roll: ;D :huhu: ??? :wirbel: }> :kotz: :help: :jojo: 8) :ohoh:


PS:Coole Smilies habt ihr hier! :)

6

30.06.2003, 22:43

Kommt immer darauf an was du mit der Engine machen willst. Was auf jeden fall rein muss, ist:
1) Image Ladefunktionen oder eigenes Image Format
2) Image Manager (um doppeltes laden von Images zu vermeiden
3) Animation Engine (oder auch Sprite Engine)
4) Color Keying (oder besser Alpha Blending)
5) Speicher Management
6) 2D Kollisionserkennung
7) Z-Order
mehr fällt mir auf anhieb nett ein. Aber selbst ist der Mann ;) Schau dir einfach mal andere 2D Spiele an.
Wichtig! Ich übernehme keinerlei Verantwortung für eventl. Datenverlust oder Schäden am Rechner ;D

Werbeanzeige