【发布时间】:2016-08-25 15:07:21
【问题描述】:
我有 2 个精灵 (QImage) = 两张具有透明背景的图片。我想知道精灵是否碰撞。 我已经检查了两个矩形是否重叠。但我想知道这两个图像是否真的重叠(红色区域)。
我的第一个想法是使用 QPainter 和 QPainter::CompositionMode_SourceIn 或 QPainter::CompositionMode_DestinationIn 创建两个图像重叠的图像(粉红色矩形)。这样,如果图像真正重叠,新图像将不会完全透明。 但是如何快速检查它是否完全透明呢?
如何快速检查两个图像是否真的重叠? 你的方法是什么?
【问题讨论】:
-
请问精灵有多大?如果它们足够小(例如 32x32),那么您建议的方法应该可以通过简单地扫描
QImage::constBits返回的合成图像数据来正常工作。而且您只需要在边界矩形相交时执行该检查。 -
精灵的大小由用户选择。所以图片可以大也可以小。
标签: qt sprite game-engine qpainter qimage