有没有适用于Qt4的2D游戏引擎?我需要一个具有碰撞检测功能并且在屏幕上运行许多精灵时能够平稳运行的游戏引擎。
QT Graphics view 已经内置了碰撞检测功能,您无需使用框架。
“Graphics View 提供了一个表面来管理和与大量自定义的 2D 图形项进行交互。”
V-Play (v-play.net) 是一个基于 Qt/QML 的跨平台游戏引擎,它提供了许多有用的 V-Play QML 游戏组件,可处理多个显示分辨率和长宽比、动画、粒子、物理、多点触控、手势、路径查找等等。 API 参考文档。 该引擎核心是用本地 C++ 编写的,结合自定义渲染器,游戏在所有设备上都能达到坚实的 60fps 性能。 如果您对使用 V-Play 制作的游戏感到好奇,以下是其中一些游戏的快速选择:
这不是纯Qt解决方案,但Gluon是一个基于Qt和一些KDE游戏库的游戏开发库。
在2D游戏中,像素级别的碰撞检测并不太难。首先,创建一个与显示器大小相同的内存缓冲区。然后,在绘制每个精灵时,将其绘制为单色版本,并将值写入内存缓冲区作为某种ID。要测试碰撞,请检查内存缓冲区中(x,y)位置是否有非零值。读取的值是对象的ID。
如果你想在画布上放置许多项目,QGraphicsView很可能是最好的选择。如果你的游戏包含的对象不太多(比如少于500个),你也可以考虑使用QML,又称Qt Quick(将随Qt 4.7一起发布)。此外,QGraphicsView在Qt开发者社区中得到了大力支持,因此许多组件已经可用(例如在libkdegames中)。