c++ - 用于 2D/3D 游戏开发的 Qt 库

标签 c++ qt

作为一种爱好,我一直致力于重新制作一款旧视频游戏,我想尽可能避免重新发明轮子。该游戏主要基于 GUI,但 GUI 需要在外观和感觉方面进行定制,并且还需要与少数游戏画面的 3D OpenGL 渲染配合使用。

为了给你一个想法,下面是初始原型(prototype)的屏幕截图:

enter image description here

使用了很多动画和 3D,但 GUI 小部件的行为与标准桌面应用程序中的行为非常相似。

到目前为止,我一直在使用自己的 GUI 库(它不够健壮或不完整,而且我遇到了一些问题)。

鉴于 Qt 的声誉和令人印象深刻的功能,以及 Qt 网站上的一些漂亮的屏幕截图,我一直在考虑迁移到 Qt。但我以前从未使用过 Qt,所以我真的不知道它有什么能力,或者学习它需要投入什么样的时间。 (注意我用过 FLTK)。

我的问题是:在这种情况下使用 Qt 可能/实用吗?

更新:在 Qt 中模拟了一些游戏屏幕后,我决定不使用它。虽然它支持我需要的许多开箱即用的功能(特别是通过样式表),但我需要支持自定义的基于位图的预渲染字体(我无法转换/替换它们)。而且我不能将 QFont 子类化,或者重新实现它而不会在未来的 Qt 版本中破坏它。也就是说,Qt 给我留下了极其深刻的印象(无论是易用性还是良好的文档)。我将借用它的一些功能用于我自己的引擎。感谢所有提供意见的人。

最佳答案

很难根据屏幕截图了解您的游戏需要做的所有事情;但是,我会回应这里其他发帖者的观点,并提供一些途径供您查看。

其一,您可能希望考虑使用 QtQuick 而不是 GraphicsView Framework,但这实际上取决于您需要做什么。我只是想把它作为替代品扔在那里,这样你就不会错过它。这tutorial使用 QtQuick 组合出一个非常漂亮的四连线游戏。这可能比您想要的更简单,但话又说回来,也许不是,这取决于您需要做什么。

其次,在为所有按钮编写自定义绘制事件之前,我会考虑使用 Qt Style Sheets并使用类似 CSS 的语法设置小部件的样式。这将允许您以非常灵活的方式真正快速地更改 GUI 的外观和感觉。根据您的屏幕截图,我认为您可以从样式表中获得您想要的内容,这比子类化和滚动您自己的设置要快得多。但再一次,根据一张截图很难知道。 Here是仅使用 Qt 样式表实现的深橙色 GUI 示例。 QPushButton 样式表的 border-radius 属性将为您提供圆形按钮 ( ref)。

关于c++ - 用于 2D/3D 游戏开发的 Qt 库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10878913/

相关文章:

c++ - 我是 RUBY 的新手,我需要了解 3 个函数

c++ - 在其他组件上使用 QTableView 缓慢滚动

c++ - 具有 std::minmax 和右值的结构化绑定(bind)

c++ - 构建 Qt - NMAKE : fatal error U1077: 'cd' : return code '0x2'

c++ - 将 int 转换为具有零填充(前导零)的 QString

python - 无法从 PyQt4 导入 QtCore 或 QtGui

c++ - Qt - 为什么无法使用带有从 FileDialog 获取的目录的 QFile 读取文件?

c++ - vector 填充不同的对象

c++ - 放大 2D 场景中的对象?

python - 未解析的外部符号构建 Python 模块