我可以仅使用 QML 开发 2D 游戏吗?

我可以仅使用 QML 开发 2D 游戏吗?

我对为 Ubuntu Touch 进​​行开发有点兴趣(我也没有真正的编码经验),但我的主要兴趣是尝试开发 2D 游戏。

据我了解,我要么使用 QML 作为界面 + 另一种语言作为游戏本身,要么只使用另一种语言作为界面和游戏,但基本上,QML 只适用于界面。

这是真的吗?如果是这样,那么学习另一种编程语言的最佳选择是什么?

答案1

是的,您可以完全使用 QML 开发游戏。此链接上有一个 Qt Quick 高级教程 (http://qt-project.org/doc/qt-5.0/qtquick/qtquick2-qml-advtutorial.html) 以此方式构建游戏。

新的 Sprite(http://qt-project.org/doc/qt-5.0/qtquick/qml-qtquick2-sprite.html) 和 AnimatedSprite 元素可能对您非常有用。

答案2

这完全取决于你正在设计的游戏以及你想使用哪种图形设备。例如,如果你想使用 OpenGL,我建议使用 java 或 C++。你可以使用多种不同的语言为 ubuntu 开发游戏,但最好的可能是使用 java 和 c++,因为它们是跨平台的。我从经验中知道这一点。还要检查 Python,我听说它在制作跨平台游戏时也非常有用。

如果您尝试将其制作成一个用于网络库的在线游戏,那么您就不能使用诸如.net 和 winsock 之类的东西,而必须使用第三方网络库或编写您自己的网络库。.net 和 winsock 仅适用于微软,无法在 Linux 下运行,这是大多数游戏在 Windows 中开发的主要原因。

祝您享受新游戏的开发并好运!

PS 如果您需要界面我建议您检查 C++ 中的 QT 或 OpenGL

答案3

QML 绝对是创建 2D 游戏的绝佳选择,与其他语言相比,它可以节省大量时间和代码行。

举个例子,V-Play(www.v-play.net) 是一个基于 Qt/QML 的跨平台 2D 游戏引擎,具有许多有用的 V-Play QML 游戏组件,用于处理多种显示分辨率和纵横比、实体和组件系统、动画、粒子、物理、多点触控、手势、路径查找等(API 参考)。

作为引擎下载的一部分,您将获得 12 多个示例游戏,其中包含完整的源代码,这些游戏完全用 QML 编写。这些游戏是应用商店中真实发布的游戏。您可以找到这些游戏这里

这证明 QML 可用于完全发布和完善的 2D 游戏。如果您的游戏中确实需要一些对性能非常敏感的内容,您只需用 C++ 编写该组件并将其作为 QML 组件提供即可。

答案4

这已经是一个较老的帖子了,我认为缺少一些最新的答案:

  • 您可以完全在 Qt Quick/QML 中编写游戏,但使用物理引擎作为插件。如果您的游戏涉及移动物体和碰撞,这将非常有用。一个很棒的物理插件是QML-Box2D。 游戏q打砖块是这样写的。
  • 如果你不需要物理引擎,你甚至可以使用纯 QML,请参阅QML推箱子或者丢掉信件

相关内容