Отрисовка тайлсета в дельфи

Темы, связанные с проектированием и программированием roguelike-игр

Модераторы: Sanja, Максим Кич

Ответить
Аватара пользователя
Apromix
Мастер
Сообщения: 1154
Зарегистрирован: 04 июл 2011, 10:44
Откуда: Украина, Черновцы
Контактная информация:

Отрисовка тайлсета в дельфи

Сообщение Apromix » 04 июн 2018, 20:23

Здраствуйте! Хочу подружить редактор Tiled и Delphi :)

Все шло вроде бы хорошо. И вот небольшая заминка. Не могу разобраться, почему нет прозрачности при отрисовке на канве.

Загружаю тайлсет 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;
И все, альфа-канала нету. Никто не знает, что может быть?
Изображение Изображение

Аватара пользователя
Jesus05
Сообщения: 1828
Зарегистрирован: 02 дек 2009, 07:50
Откуда: Норильск, сейчас Санкт-петербург.
Контактная информация:

Re: Отрисовка тайлсета в дельфи

Сообщение Jesus05 » 04 июн 2018, 22:11

Я не сильно делфист но может это поможет https://stackoverflow.com/questions/103 ... nd-opacity

Аватара пользователя
Apromix
Мастер
Сообщения: 1154
Зарегистрирован: 04 июл 2011, 10:44
Откуда: Украина, Черновцы
Контактная информация:

Re: Отрисовка тайлсета в дельфи

Сообщение Apromix » 05 июн 2018, 20:59

Спасибо за ответ. Решил немножко другим способом.
Изображение Изображение

Аватара пользователя
karagy
Сообщения: 1038
Зарегистрирован: 10 янв 2007, 14:13

Re: Отрисовка тайлсета в дельфи

Сообщение karagy » 06 июн 2018, 10:49

Вижу, мучаетесть с xml.
Тут https://stackoverflow.com/questions/368 ... cus/370799 советуют всякое, например omnixml .
Но если подумаете перейти на json, то есть чудесный superobject .

Аватара пользователя
Apromix
Мастер
Сообщения: 1154
Зарегистрирован: 04 июл 2011, 10:44
Откуда: Украина, Черновцы
Контактная информация:

Re: Отрисовка тайлсета в дельфи

Сообщение Apromix » 06 июн 2018, 20:49

Спасибо :) Сам Tiled сохраняет карты в xml. Да и читать xml в дельфи просто. Конечно OmniXML штука крутая :)
Скрытый текст: ПОКАЗАТЬ
Неплохо было бы все эти штуки с гитхаба сохранять где-то на будущее, не известно, когда и что может в будущем сгодиться :)
Изображение Изображение

Аватара пользователя
karagy
Сообщения: 1038
Зарегистрирован: 10 янв 2007, 14:13

Re: Отрисовка тайлсета в дельфи

Сообщение karagy » 07 июн 2018, 10:23

На заметку, вот тут обновляемый список всякой пользЫ для паскаля: https://github.com/Fr0sT-Brutal/awesome-delphi

Аватара пользователя
Apromix
Мастер
Сообщения: 1154
Зарегистрирован: 04 июл 2011, 10:44
Откуда: Украина, Черновцы
Контактная информация:

Re: Отрисовка тайлсета в дельфи

Сообщение Apromix » 07 июн 2018, 17:12

Спасибо :)
Изображение Изображение

Ответить

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 2 гостя