使用 Qt 的 QGraphicsScene/QGraphicsView 进行 2D 游戏

Posted

技术标签:

【中文标题】使用 Qt 的 QGraphicsScene/QGraphicsView 进行 2D 游戏【英文标题】:Using Qt's QGraphicsScene/QGraphicsView for 2D games 【发布时间】:2010-11-15 20:04:36 【问题描述】:

你们中是否有人尝试过使用 Qt 的 QGraphicsScene/QGraphicsView 类在 C++ 中编写 2d 游戏以进行渲染和碰撞检测? 如果场景中有许多移动/动画对象,它们是否表现良好?有什么注意事项吗?总的来说,您能指出任何使用 Qt 图形工具编写的游戏吗?

提前致谢。

【问题讨论】:

我还没有尝试过,但我可以提出的一个警告是,该框架不做 z 缓冲 - 所以除非你有很少的对象,否则你可能想要自己滚动。 Qt 游戏:developer.qt.nokia.com/wiki/QtBasedGames 看看 KDE Games games.kde.org。如今,其中许多(大多数?)都是基于 graphicsview 的。 【参考方案1】:

我尝试使用它们进行渲染。它们的表现不是很好,此外 Qt 本身不太适合游戏:它们是一个非常重的库,可以做很多事情。他们的事件处理不是轻量级的。

如果是简单的游戏应该没问题;该 API 非常易于使用,只需一个标志即可设置为使用 OpenGL 或软件渲染。但如果你想写一个真正的游戏,你应该选择别的东西,一些为游戏考虑的东西。

【讨论】:

【参考方案2】:

我不认为使用 qt 是一个最佳解决方案,即使没有 graphicsviewframework 像本教程那样创建一个突破性游戏:

http://www.zetcode.com/gui/qt4/breakoutgame/

无论如何,我的建议是使用另一个库,可能是 sfml 或 SDL,或者您可以尝试新的 polycode 引擎

http://www.polycode.org

看起来很有希望。

【讨论】:

以上是关于使用 Qt 的 QGraphicsScene/QGraphicsView 进行 2D 游戏的主要内容,如果未能解决你的问题,请参考以下文章

使用 Qt 插件管理 Qt 对象

QT基本使用说明

一Qt初尝试,做一个QT计算器《QT 入门到实战》

一Qt初尝试,做一个QT计算器《QT 入门到实战》

一Qt初尝试,做一个QT计算器《QT 入门到实战》

通过 Qt Jambi 使用粒子(Qt 的惊人功能)