我一直在寻找解决问题的方法。 我正在尝试使用Qt和c ++开发游戏,游戏使用六角形瓷砖,它是一款棋盘游戏。我对Qt很新,我想知道是否有办法拍摄一块板子并绘制六边形的x,y坐标(大六边形是64个六边形,一边是5个六边形) )这样我就可以将可移动物体分配到六边形(将游戏块从一个六边形移动到另一个六边形)。
我已经看过Qgraphicsscene和Qgrapgicsview,但是有更简单的方法来进行电路板的映射吗?
指出我正确的方向将是一个很大的帮助..
答案 0 :(得分:2)
我建议您使用QML(Qt元语言或Qt建模语言),这是一种声明性语言,如Java脚本,用于设计程序的丰富用户用户界面:它的外观和行为方式。您可以使用矢量和光栅图像,它有许多易于使用的功能,使您可以制作精彩的动画。使用Qt开发的大多数Android应用程序都使用QML。
答案 1 :(得分: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网格上,六角形中心出现在其中,而不是其他任何地方。
希望有所帮助。