使用 Qt 和 C++ 开发游戏

Posted

技术标签:

【中文标题】使用 Qt 和 C++ 开发游戏【英文标题】:Using Qt and c++ in developing a game 【发布时间】:2014-03-12 19:22:49 【问题描述】:

我一直在寻找几个小时来解决我的问题。 我正在尝试使用 Qt 和 c++ 开发游戏,该游戏使用六边形瓷砖,它是一款棋盘游戏。我对 Qt 很陌生,我想知道是否有办法给木板拍照并绘制出六边形的 x、y 坐标(它是一个大六边形中的 64 个六边形,一边有 5 个六边形) 以便我可以将可移动对象分配给六边形(将游戏块从一个六边形移动到另一个六边形)。

我看过 Qgraphicsscene 和 Qgrapgicsview,但是有没有更简单的方法来进行板的映射?

为我指明正确的方向会很有帮助..

【问题讨论】:

通过一些基本的数学运算,您可以计算出六边形中心的真实坐标。由于您没有指定您使用的坐标系,因此我们无法为您提供帮助。我也不确定这是否真的是你的问题? 在 Qt 中使用 OpenGL 怎么样?有一些额外的初始工作,但您可以使用不同的坐标系并使用不同的 3D 视图显示电路板。 为您的程序生成的电路板拍照可能不是一个好的开始 【参考方案1】:

我建议您使用 QML(Qt 元语言或 Qt 建模语言),它是一种类似于 Java 脚本的声明性语言,用于设计程序的丰富用户用户界面:包括外观和行为方式。您可以使用矢量和光栅图像,它具有许多易于使用的功能,使您能够制作出色的动画。大多数使用 Qt 开发的 android 应用程序都使用 QML。

【讨论】:

【参考方案2】:

更新:我开始对此进行演示。我让它绘制六边形,并在悬停时突出显示它们。

https://github.com/peteristhegreat/Hexagons

(更新结束)

您可能需要考虑使用QGraphicsView

http://qt-project.org/doc/qt-5.0/qtwidgets/graphicsview.html

如果您查看六边形网格的外观,您可以很容易地将每个六边形的中心映射到 2d、x-y 坐标平面。

如果您使用QPolygonQGraphicsPolygonItem,您可以很快上手。

http://qt-project.org/doc/qt-5.0/qtwidgets/qgraphicspolygonitem.html#details

查看上图,您只需要创建一个过滤器,该过滤器只允许对象落在您的 xy 网格上,其中出现六边形中心,而不是其他任何地方。

希望对您有所帮助。

【讨论】:

以上是关于使用 Qt 和 C++ 开发游戏的主要内容,如果未能解决你的问题,请参考以下文章

用Qt制作的Android独立游戏《吃药了》公布

[源码和报告分享] 基于QT的网络五子棋游戏

C++关于游戏开发的书籍

JAVA能写游戏吗?

OUZEL:一个针对2D游戏开发的C++游戏引擎

编程语言:C++和C#,哪个更适合开发大型游戏?