DirectDraw zu langsam

Asmo

Grünschnabel
Tach,
Ich habe mit DirectDraw einen Leveleditor programmiert... Zumindest einen Teil davon. Also die Map wird eingelesen und dann immer wieder gezeichnet. Dadurch wird aber der Ablauf enorm verlangsamt und der Charakter bewegt sich unglaublich langsam -.- Gibt es irgend einen Trick oder sowas, damit der Ablauf schneller gehen kann?
Danke schon mal,
Asmo
 
(Woah ging das schnell!)
Hab ich auch schon, aber wenn ich es nur ein mal zeichnen will (also vor der Do-While-Schleife), wird es gar nicht erst gezeichnet. Und spätestens dann, wenn die Map bewegt werden muss (beim laufen) müsste es ja auch immer wieder gezeichnet werden -> unschönes Stocken, aber derb.
 
Na dann, rück mal mit ein paar Details raus.

2D? 3D? Perspektive? usw.

Am besten auch noch der Zeichenalgorithmus (aber bitte in pseudocode, damit man sich nicht durch die Details wühlen muss sondern den Algorithmus sieht).
 
Ist 2D in Vogelperspektive (schräg)

Die Schleife:
Code:
Do
DoEvents
BackBuffer.BltColorFill BackRECT, vbWhite
Call zeichnen
Call chara
PrimarySurf.Flip Nothing, DDFLIP_WAIT
Loop While Running = True
End

Funktion Zeichnen:
Code:
Anzahl = 1
For E = 1 To 21
For I = 1 To 21
Select Case Objekt(Anzahl).Typ
Case "G"
Set Bild = DDraw.CreateSurfaceFromFile("C:\gras.bmp", BildDesc)
BackBuffer.BltFast Ix + 1, Yp + 1, Bild, BildRECT, DDBLTFAST_WAIT
Case "S"
Set Bild = DDraw.CreateSurfaceFromFile("C:\stein.bmp", BildDesc)
BackBuffer.BltFast Ix + 1, Yp + 1, Bild, BildRECT, DDBLTFAST_WAIT
Case "B"
Set Bild = DDraw.CreateSurfaceFromFile("C:\boden.bmp", BildDesc)
BackBuffer.BltFast Ix + 1, Yp + 1, Bild, BildRECT, DDBLTFAST_WAIT
End Select
Ix = Ix + 25
Anzahl = Anzahl + 1
Next I
Yp = Yp + 25
Ix = 0
Next E

Chara ist etwa gleich, nur dass nur der Chara gezeichnet wird.
Bitte hab erbarmen, ich programmiere erst seit gestern mit DX7, also wunder dich nicht über den schlechten und unübersichtlichen Code ^^"
 
Ich programmier kein DX - aber probier mal die Bilder erst zu laden und dann immer eine Kopie des schon geladenen Bildes in den Schleifen zu verwenden. Du hast da 21*21 Festplattenzugriffe drin, klar das das ruckelt.
 
Zurück