使用 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 坐标平面。
如果您使用QPolygon
或QGraphicsPolygonItem
,您可以很快上手。
http://qt-project.org/doc/qt-5.0/qtwidgets/qgraphicspolygonitem.html#details
查看上图,您只需要创建一个过滤器,该过滤器只允许对象落在您的 xy 网格上,其中出现六边形中心,而不是其他任何地方。
希望对您有所帮助。
【讨论】:
以上是关于使用 Qt 和 C++ 开发游戏的主要内容,如果未能解决你的问题,请参考以下文章