谷歌地图吃豆人

时间:2017-04-25 18:47:42

标签: python c++ qt google-maps

我有一个大学项目,我应该在谷歌地图上制作吃豆人游戏,这意味着游戏应该在谷歌地图上找到你的位置,并使用地图中的街道作为游戏地图(如下图)。 enter image description here

我只允许使用C ++和Python,我可以使用Qt制作GUI。 我想我应该使用Goole Maps API,但我不知道如何使用它。 我不知道如何开始这个项目,我想知道是否有人可以提供帮助。

感谢您的帮助。

1 个答案:

答案 0 :(得分:3)

将问题分解为更小的块,直到你可以开始编写代码为止。

在那里找到一个用于Qt或python的pacman克隆。

我还要确保你了解节点和迷宫的生成。

JSON Api

Maps API可能会使用大量JSON。要么学习:http://doc.qt.io/qt-5/qtcore-json-savegame-example.html

如果您使用QML / javascript

,请使用var map_data = JSON.parse(reply);

研究google maps api以及如何获取所需的数据。然后使用QDebug语句将数据打印到控制台。

图形

在几乎所有的图形包中,包括Qt,你需要考虑层次并从下到上绘制元素。 Qt Widgets框架,Qt Graphics View框架或QML框架都非常适合绘制这些东西......

基于QWidget或基于QGraphicsItem的

底部(先绘制)

  • Google地图图片 - >存储在QImage或QPixmap或painter.drawPixmap()或QGraphicsPixmapItem()
  • Google地图路径/道路 - > QGraphicsPolygonItem或QPainterPath或QLine或QGraphicsLineItem
  • 黄点 - > painter.drawEllipse()或QGraphicsEllipseItem
  • Pacman - > painter.drawArc()或QGraphicsEllipseItem
  • Ghosts - > painter.drawPixmap()或QGraphicsSvgItem

使用QGraphicsColorizeEffect可以让子元素很好地着色或闪现。

可以使用QPropertyAnimations动画移动。

如果您正在考虑部署到移动/智能手机或平板电脑,那么QML是首选。查看QML游戏的v-play中的示例。下载v-play sdk,然后查看它包含的所有示例。塔防游戏可能类似于你在这里制作的游戏。

QML中的元素与其他Qt类相似,但对OpenGL ES 2更友好,并且可以在移动平台上更快地渲染和运行。

QML元素

底部(先绘制)

  • Google地图图片 - >图像
  • Google地图路径/道路 - >路径
  • 黄点 - >矩形{高度:宽度; radius:width * .5}(圆角矩形)
  • Pacman - > PathArc
  • Ghosts - >图像

Colorize或HueSaturation元素可以改变图像的颜色。

http://doc.qt.io/qt-5/qtquick-usecase-animations.html关于如何制作动画。

更多链接

https://qmlbook.github.io/

http://doc.qt.io/qt-5/classes.html

https://v-play.net/

https://developers.google.com/maps/

https://www.google.com/search?q=maze+in+qt

https://www.google.com/search?q=pacman+in+qt

How to add Google Maps in my application in Qt?

希望有所帮助。