在QT中绘制32x32平铺图像

时间:2013-06-19 00:44:53

标签: qt map tile

我很想学习如何将图像分割成32x32(或任何尺寸)的可选图块并在 Qt 中显示它们?一个例子是平铺地图编辑器(屏幕右下角的面板)。我正在考虑尝试在 Qt 中创建一个2D级别编辑器以获得乐趣,但我对 Qt 相当新,并且还没有找到这个特定问题的答案。或者我可能只是不知道如何表达这个问题。

1 个答案:

答案 0 :(得分:1)

将主图像添加到QPixmap,然后为要创建的每个图块调用QPixmap的复制功能。这允许您指定要复制的区域,并返回带有该区域的新QPixmap。

使用copy创建每个QPixmap磁贴,使用它创建一个QGraphicsPixmapItem,然后将其添加到QGraphicsScene。

所以,你会做这样的事情: -

// assuming your source image is in your resources qrc file
QPixmap srcImage(":/images/srcImage.png");

//in a loop for x and a 2nd loop for y

// copy a section of the source image
QPixmap tileImg = srcImage.copy(x, y, w, h);

// create the tile
QGraphicsPixmapItem* pTile = new QGraphicsPixmapItem(tileImg);

// add the pTile to the scene.

使用QGraphicsPixmapItem将为您提供一个平铺对象,可以在场景中定位,选择和移动。