c++ ddraw blit-problem

KAY

Mitglied
Hallo zusammen.

Ich arbeite gerade an einem Level-Editor in 2D. Er erzeugt ein Feld aus n mal m Kästchen und auf diese kann man dann Einheiten setzen.
Die Einheit "hängt" dabei am Mauszeiger. Damit sie keine Spur hinterlässt wird die Szene bei jeder Bewegung neu gezeichnet.
Wenn ich dann eine Einheit gesetzt habe und die nächste nehmen will, wird alles wieder gezeichnet und die 1. Einheit ist verschwunden.

Also dacht ich mir ich mache eine Schleife, die jedes Feld (für die Felder gibt es eine Struktur) abfragt, welche Einheit auf dem Feld ist und diese dann zeichnet.

Aber diese Schleife stürzt ab und das Programm beendet sich. Im Debug-Modus komme ich bis zum Fehler, aber dann stürzt Windoof ab...

Die Schleife sieht so aus:


Code:
for(int g=0;g<Feldgroesse+1;g++)
	{
	for(int h=0;h<Feldgroesse;h++)
            {
            lpDDSBackBuffer->BltFast(g,h,SpielFeld[g][h].Einheit,NULL,DDBLTFAST_WAIT | DDBLTFAST_SRCCOLORKEY);
            }
        }
 
Könnte sein das BltFast etwas ausserhalb des bildschrim blittet. dann stürzt es meiner meinung ab. für sowas musst du clipper benutzen
 
ich habs probiert. Also das programm läuft im fullscreen -und exclusive mode. wenn ich was ausserhalb des bildschrims blitte, dann sehe ich das nicht, aber es stürzt nicht ab.

ich hab ja schon überlegt, dass es daran liegen könnte, dass manche Surfaces NULL sind. da hab ich dann ein Extra-Surface (größe eines Kästchens, aber nur ColorKey-Farbe drin) draufgelegt, aber das geht immer noch nicht :(
 
Dann kann es sein, dass du einen ungültigen Array zugriff hast, also dass du vielelicht mit deiner schelife zu weit gehst
 

Neue Beiträge

Zurück