Ich hab eine Frage zu BitBlt:
Also ich zeichne jetzt alle Planeten in die Paintbox:
Delphi-Quellcode:
Bmp := TBitmap.Create;
try
case World[Ship1.XWorldpos+i, Ship1.YWorldpos+o] of
1 : Bmp.LoadFromFile(Form1.SpielVerzeichnis+'\Graphics\planet_1.bmp');
2 : Bmp.LoadFromFile(Form1.SpielVerzeichnis+'\Graphics\planet_2.bmp');
3 : Bmp.LoadFromFile(Form1.SpielVerzeichnis+'\Graphics\planet_3.bmp')
else Bmp.LoadFromFile(Form1.SpielVerzeichnis+'\Graphics\planet_3.bmp')
end;
finally
Form1.PaintBox1.Canvas.Draw(i*22, o*22, Bmp);
Bmp.Free;
end;
Dieser Vorgang ist in einer Funktion abgelegt und kann unter Umständen mehrere Male pro Sekunde aufgerufen werden
(Immer wenn das Raumschiff in ein anderes Feld wechselt, also alle 22 Pixel Wegstrecke)
Kann man das so machen oder gibts da ne andere Lösung (ich hab da nich voll durchgeblickt, und verschiebe nur das
raumschiff mittels bitblt)
[EDIT]Ich hab mal die Oberfläche angehängt. Ich glaube, es ist besser, wenn nur der Sichtbereich bewegt wird, wenn das Raumschiff sich in den Bildschirmrand-Bereich begibt; da ansonsten der Anflug auf einen Planeten schwierig wird...[/EDIT]
mfg
devnull