Moin!
Ich frag mich grad, wie das beim 1. mal zeichnen gehen soll?
Du zeichnest ja nur die Pixel in der 1. Spalte.
inc(pix);
Bei einem Pointer net grad zu empfehlen
Delphi-Quellcode:
// Bitmap einfärben
// Scanline-Methode
var Line:PByteArray;
...
for y := 0 to AHeight - 1 do
begin
Line := iMap.Picture.Bitmap.ScanLine[y];
for x := 0 to AWidth - 1 do
begin
if map[x][y] <= 0 then // Wasser
begin
pix:=@Line[x * 3];
i := Trunc(map[x][y] / Mi * 100);
pix^.rgbtBlue := 255 - i * 2;
pix^.rgbtGreen := 51;
pix^.rgbtRed := 51;
end else // Land
begin
pix:=@Line[x * 3];
i := Trunc(map[x][y] * 160 / Ma);
pix^.rgbtBlue := 32 + (i div 4);
pix^.rgbtGreen := 240 - i;
pix^.rgbtRed := 32 + (i div 4);
end;
end;
end;
Korrigiert und
nicht getestet