Все шло вроде бы хорошо. И вот небольшая заминка. Не могу разобраться, почему нет прозрачности при отрисовке на канве.
Загружаю тайлсет tileset.png, в котором есть прозрачность в PNGImage с именем Tileset. Далее рисую на канве компонента PNGImage с именем Surface этой процедурой:
Код: Выделить всё
procedure TForm1.DrawTile(const X, Y, Index: Integer);
begin
Surface.Canvas.CopyRect(Bounds(X * TileSize, Y * TileSize, TileSize,
TileSize), Tileset.Canvas, Bounds((Index mod TilesetWidth) * TileSize,
(Index div TilesetWidth) * TileSize, TileSize, TileSize));
end;
Код: Выделить всё
procedure TForm1.FormPaint(Sender: TObject);
var
X, Y: Integer;
begin
for Y := 0 to MapHeight - 1 do
for X := 0 to MapWidth - 1 do
begin
DrawTile(X, Y, Map[lrGround][X][Y]);
DrawTile(X, Y, Map[lrObject][X][Y]);
end;
Canvas.Draw(0, 0, Surface);
end;