Gibt es auch irgendeine elegante Möglichkeit das mit DelphiX zu lösen?
In DelphiX werden ja alle Sprites von der SpriteEngine verwaltet, die nacheinander deren DoDraw-Methode aufruft.
Mein Ziel ist einen bestimmten Typ von Sprites nur in einem bestimmten Bereich zu zeichnen.
Spontan (nachdem ich zufällig diesen Thread hier gefunden hab) fällt mir folgendes dazu ein:
Delphi-Quellcode:
procedure MeinSpriteTyp.DoDraw;
var
MyRgn: HRGN ;
begin
MyRgn := CreateRectRgn(100,100,200,200);
SelectClipRgn(Engine.Surface.Canvas.Handle,MyRgn);
inherited;
SelectClipRgn(Image1.Canvas.Handle,nil);
DeleteObject(MyRgn);
end;
Da das aber von einem Timer aufgerufen wird und vor allem mit mehreren Sprites passieren muss, sieht das sehr nach einer heißlaufenden CPU aus.
Das ich die ClipRegion dauerhaft setzte geht leider auch nicht da in den anderen Bereichen eben andere Sprites gemalt werden sollen