Qt4 2D 游戏引擎

4

有没有适用于Qt4的2D游戏引擎?我需要一个具有碰撞检测功能并且在屏幕上运行许多精灵时能够平稳运行的游戏引擎。

5个回答

6

QT Graphics view 已经内置了碰撞检测功能,您无需使用框架。

“Graphics View 提供了一个表面来管理和与大量自定义的 2D 图形项进行交互。”


碰撞检测在哪个级别进行?是边界框、多边形还是像素? - Skizz
什么是侧向滚动关卡的最佳实现方式?精灵是否可以进行动画处理?碰撞检测应该在多边形层面上进行。 - Tristan
@Tristan Seifert 视图负责滚动,您只需指定要滚动到哪里。而且,为什么您关心它如何执行碰撞检测呢?只要它既准确又快速即可。只需查看GraphicsView的示例http://doc.qt.nokia.com/4.6/examples-graphicsview.html。 - extraneon
@Tristan Seifert,我相信术语“多边形”通常用于3D,而不是2D Sprite上下文中。Sprite可以是(并且经常是)位图,而不是多边形。 - extraneon
通过多边形碰撞检测,我指的是这样一种情况:例如我们有一个三角形精灵,但另一个精灵可以沿着它滑动。这就是我需要多边形碰撞检测的地方。当我想要滚动时,我必须先绘制整个关卡,然后再进行滚动。 - Tristan
显示剩余2条评论

4

V-Play (v-play.net) 是一个基于 Qt/QML 的跨平台游戏引擎,它提供了许多有用的 V-Play QML 游戏组件,可处理多个显示分辨率和长宽比、动画、粒子、物理、多点触控、手势、路径查找等等。 API 参考文档。 该引擎核心是用本地 C++ 编写的,结合自定义渲染器,游戏在所有设备上都能达到坚实的 60fps 性能。 如果您对使用 V-Play 制作的游戏感到好奇,以下是其中一些游戏的快速选择:


2

这不是纯Qt解决方案,但Gluon是一个基于Qt和一些KDE游戏库的游戏开发库。


如果您想在Gluon Creator中轻松制作游戏,那么Gluon是一个不错的选择,但如果您想使用C/C++进行开发,则不太适合。有一篇详细的评论可以在kde-games-devel邮件列表上找到。 - Stefan Majewsky

1

在2D游戏中,像素级别的碰撞检测并不太难。首先,创建一个与显示器大小相同的内存缓冲区。然后,在绘制每个精灵时,将其绘制为单色版本,并将值写入内存缓冲区作为某种ID。要测试碰撞,请检查内存缓冲区中(x,y)位置是否有非零值。读取的值是对象的ID。


0

如果你想在画布上放置许多项目,QGraphicsView很可能是最好的选择。如果你的游戏包含的对象不太多(比如少于500个),你也可以考虑使用QML,又称Qt Quick(将随Qt 4.7一起发布)。此外,QGraphicsView在Qt开发者社区中得到了大力支持,因此许多组件已经可用(例如在libkdegames中)。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接