![]() |
Andorra 2d Canvas.Brush.Color
Hallo!
Das Programm soll verschiedene Rechtecke zeichnen. Momentan nur graue "Blöcke", deren Farbe ich schon auf grau gesetzt habe.
Delphi-Quellcode:
Die Prozedur wird noch mit Verschiebung = 0 ausgeführt.procedure ZeichneLevel(var Zeichenflaeche : TAddraw; Verschiebung : Integer); var Rechteck : TRechteck; begin for i := Low(Block) to High(Block) do begin if Block[i] <> nil then begin Block[i].SetzePos(Block[i].x + Verschiebung,Block[i].y); //Blockzeichnung vorbereiten: with Zeichenflaeche.Canvas do begin Pen.Color.a := Block[i].Farbe.a; Pen.Color.b := Block[i].Farbe.b; Pen.Color.g := Block[i].Farbe.g; Pen.Color.r := Block[i].Farbe.r; Brush.Color := Pen.Color; end; //Blöcke zeichnen: if Block[i] is TRechteck then begin Rechteck := TRechteck(Block[i]); Zeichenflaeche.Canvas.Rectangle(Rechteck.x,Rechteck.y,Rechteck.x+Rechteck.a,Rechteck.y-Rechteck.b); end; //Ohne diese Zeile wird nichts gezeichnet: Zeichenflaeche.Canvas.Release(); end; end; end; Das Programm zeichnet aber nur grau umrandete Rechtecke, es sollen aber auch grau ausgefüllte sein. Liegt das an der Brush.Color oder muss ich sonst noch was beachten? Warum funktioniert aber die Zuweisung der Pen.Color? Danke schonmal für die Hilfe! |
AW: Andorra 2d Canvas.Brush.Color
Farbe setzen alleine reicht nicht, Du musst schon noch zeichnen (Canvas.FillRect).
|
AW: Andorra 2d Canvas.Brush.Color
Die Prozedur gibt es bei Andorra aber nicht... und im Tutorial scheint der Aufruf einer solchen auch nicht notwendig.
|
AW: Andorra 2d Canvas.Brush.Color
Dann nehme ich alles zurück, da ich das "Andorra" schlicht überlesen hatte.
|
AW: Andorra 2d Canvas.Brush.Color
Ich denke das Problem ist, dass du die Blöcke "falsch herum" zeichnest, d.h. bei der letzten y-Koordinate ziehst du die Breite ab. Hierdurch culltdie Grafikkarte die Vertices des Rechtecks weg.
Als Lösung kannst du entweder die Rechtecke "richtig herum" zeichnen oder das Culling ausschalten (über die TAdDraw.Options, siehe ![]() |
AW: Andorra 2d Canvas.Brush.Color
Danke, wie immer die richtige Antwort :-)
An sowas denkt man als Hobbyprogrammierer aber auch nicht xD |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:37 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz