【发布时间】:2010-02-08 19:11:20
【问题描述】:
所以,我打算用 Qt 开发一个 Pac-Man 克隆。问题是我真的不知道从哪里开始。
我快速查看文档和一些演示。我还在 qt-apps.org 上下载了一些游戏资源。而且看来用Qt开发游戏的方法有很多!
根据您的经验,我应该考虑 Qt 的哪个部分来开发 Pac-Mac 克隆?
- 动画框架
- 图形视图框架
- 油漆系统
- Qt 声明式
任何帮助将不胜感激。
【问题讨论】:
所以,我打算用 Qt 开发一个 Pac-Man 克隆。问题是我真的不知道从哪里开始。
我快速查看文档和一些演示。我还在 qt-apps.org 上下载了一些游戏资源。而且看来用Qt开发游戏的方法有很多!
根据您的经验,我应该考虑 Qt 的哪个部分来开发 Pac-Mac 克隆?
任何帮助将不胜感激。
【问题讨论】:
我认为QGraphicsView 框架是最好的方法。为游戏的元素创建一个QGraphicsScene,一些QGraphicsItems。您可以免费进行碰撞检测。
大部分KDE games 都基于QGraphicsView 框架。它非常适合简单的游戏开发。
【讨论】:
我目前正在为跨平台游戏开发提供游戏专用 Qt Quick Components 的项目,可能感兴趣:http://v-play.net :)
【讨论】:
您至少需要查看QGLWidget。您可以通过从 QGLWidget 派生在几分钟内启动 OpenGL 程序,它将创建窗口、上下文、处理鼠标和键盘输入等。创建一个 QTimer 以每 10-15 毫秒左右触发一次 updateGL() 并且你很高兴。我认为在某个地方有一个演示可以设置它,但我已经有一段时间没有看到它了。
如果您想将小部件嵌入到窗口中,我会查看QGraphicsView。有一个名为boxes 的演示。请注意,该演示有点难以学习,因为多个类被放入同一个文件中,并且可能需要一些时间跟踪才能确定流程在哪里。
由于您正在做一个 2d 游戏,您可能想看看在 top of OpenGL 上使用 QPainter。这使您可以轻松地绘制图元,而不是使用 OpenGL 调用来绘制它们。不过,我永远无法让它在全屏模式下停止闪烁。
【讨论】:
Qt here 有一本关于游戏开发的书,有点旧,但它可能会给你一些想法。但是恕我直言,Qt 是基于小部件的,对于游戏来说有点慢,您可以考虑使用 SDL 或 OpenGL。
【讨论】:
我正在使用 Nvidia 的 PhysX API 使用 Qt 和 OpenGL 开发刚体模拟。如果你想看到这种方法,请查看我在 github 上的项目:http://github.com/lucassimao/Simulacao-Estereologica
【讨论】:
嗯,一个值得关注的地方可能是 Gluon 游戏开发框架,该框架目前正在开发中。这取决于您使用 PacMan 克隆的真正目标,但 Gluon 很可能就是您所追求的:https://github.com/KDE/gluon
【讨论】:
如果其他人有兴趣学习如何使用 C++ 和 Qt 制作游戏,请查看我的 YouTube 教程系列。它通过一系列视频来解释图形视图框架,这些视频建立在我们从教程 1 开始的单个游戏之上。
C++ Qt Game Tutorial 8 - Adding Graphics
如果您还不熟悉 Qt,那么我真的很喜欢 VoidRealm 的 Qt 教程系列,也在 youtube (C++ Qt 1 - Introduction to QT programming) 上。
【讨论】:
【讨论】: