Hm, ich dachte, ich hätte es jetzt endlich verstanden, dem ist aber offensichtlich nicht so. Das habe ich als Versuch gemacht:
Delphi-Quellcode:
Recalt:=rect(Kidat[I].PosX,Kidat[I].PosY,Kidat[I].PosX+Kidat[I].Groesse,Kidat[I].PosY+Kidat[I].Groesse);
Recneu:=rect(Kidat[I].PosX,Kidat[I].PosY+Kidat[I].Geschwindigkeit,
Kidat[I].PosX+Kidat[I].Groesse,Kidat[I].PosY+Kidat[I].Groesse+Kidat[I].Geschwindigkeit);
UnionRect(RecZusammen, RecAlt, RecNeu);
Tmpbmp.Width:=Kidat[I].Groesse;
Tmpbmp.Height:=Kidat[I].Groesse*2;
TmpBmp.Canvas.CopyRect(RecZusammen, HintergrundPIC.Canvas, RecZusammen);
TmpBmp.Canvas.Draw(0, 0, RaumschiffMobPIC[1]);
Screen.ActiveForm.Canvas.Draw(Kidat[I].PosX,Kidat[I].PosY, TmpBmp);
Wenn ich Höhe und Breite der Bitmap nicht einstelle sehe ich garnichts, wenn doch wird das Raumschiff vor weißem Hintergrund gezeichnet, der nach und nach das komplette Hintergrundbild übermalt.. Was mach ich nur falsch?