使用 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 游戏的主要内容,如果未能解决你的问题,请参考以下文章