【问题标题】:Creating foreground background array in QT在 QT 中创建前景背景数组
【发布时间】:2012-03-07 16:05:45
【问题描述】:

我在创建一个数组时遇到问题,该数组为我提供了关于相互绘制的 2 个图像的信息。

我所拥有的是 1 张作为背景(大海)和 1 张作为前景(风景)的图像,风景没有大海那么大,所以当相互绘制时,您可以看到大海和风景它。

现在我想创建一个数组,如果是大海,则设置为 0,如果是风景,则设置为 1。所以我可以使用 这个数组稍后会做一些碰撞检测。问题是我找不到如何从中制作字节数组。 关闭图像的长度 * 宽度。

我在 QImage 中有两个图像,但我不知道如何使用 for 循环或其他东西创建数组。

使用 QPainter 函数将两个图像相互绘制。

有人可以帮我吗?

亲切的问候,

【问题讨论】:

  • 使用 QGraphicsView。它具有内置的碰撞检测功能,您可以更轻松地实现它。
  • 我知道内置的碰撞检测,但我不能在我的项目中使用它。这是一个学校项目,我们必须实现自己的碰撞检测。这就是为什么我需要一个 1 和 0 的数组。顺便说一句,谢谢。

标签: c++ arrays image qt


【解决方案1】:

如果您使用 QPainter 类将两个图像相互绘制,您会丢失有关它们的任何信息,它们现在只是绘图。您必须创建方法和对象来实施您的学校项目。我知道你不能使用 QGraphicsView,但你需要看看 qgraphicsview 是如何工作的,这样你就会有一些关于如何实现自己的碰撞系统的信息。

1 - 您需要将图纸(全部)的 Retangle 保存在某处。一个 QList 就可以了。

2 - 您还需要绘图的位置,这样您就知道它们在哪里,除了重新排列。

有了位置和矩形,您需要做的就是检查一个矩形是否与另一个矩形相交。

【讨论】:

    【解决方案2】:

    我用 2 个 forloops 完成了它,并使用黑色和蓝色来确定前景和背景。所以我只能用黑色和蓝色。

    【讨论】:

      猜你喜欢
      • 2020-07-04
      • 1970-01-01
      • 2016-06-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多