1

我正在寻找具有实际面向对象方法的跨平台(Windows、Linux、Mac)C++ 2D 游戏引擎,而不仅仅是蹩脚的单例等。我正在寻找一些基于物理的小型免费和开源游戏,因此许可证必须是 MIT/BSD 或 GPL。

我找到了很多不错的选择,但它们都是高级语言,开发似乎停滞不前。例如,LibGosu 看起来很棒,但它缺少碰撞检测等基本功能。LOVE,Cocos2D 很棒,但它们分别是在 Lua 和 Python 中的。有没有什么好的 C++ 替代方案不会让我的生活成为依赖地狱并允许我编写正确的 OO 代码?

4

7 回答 7

4

在准备好预构建的对象模型和滚动您自己的模型之间进行权衡。虽然从预先构建的 OM 开始可能会更快,但它可能不适合您以后的需求,并且根据您的需求进行修改(或更可能是变通)会很痛苦。这就是为什么许多引擎将它们的功能暴露在稍低的级别,然后您可能会针对您的客户端进行编码,这需要您自己创建“胶水”层。

至于寻找引擎,您可以只使用带有四边形/精灵的 3D 引擎和相机上的正交投影(仅限制在平面上移动)以获得与 2D 引擎相同的效果。您基本上可以修复 3D 的 Z 分量(例如0),您可以或多或少地将其视为 2D。此外,如果您愿意,您可能会获得一个性能更高的引擎,以及能够在以后轻松合并 3D 功能和概念的额外好处。

与将自己限制在 2D 引擎相比,您将有更广泛的多样性和可能性(从 API/OM 意义上)找到您需要的东西。

于 2012-08-21T06:02:38.547 回答
2

查看 cocos2d-x,cocos2d-iphone 的 c++ 端口。结合 Box2D ( http://box2d.org/ ) 用于简单的物理,它提供了很多可能性。

两者都是 c++,分别在 MIT 和 zlib 许可下。

编辑:从 cocos2d-x v2 开始,不再支持 linux 端口(http://www.cocos2d-x.org/projects/cocos2d-x/wiki/Tutorials

于 2012-08-21T07:51:18.820 回答
1

你看过ClanLib吗?

我用它自己创建了一个小型 2D 游戏。支持 Linux 和 Windows(但仅部分支持 Mac)并且它是 C++。此外,它具有许多基本功能和可选的显卡加速等。许可证非常自由。

于 2012-08-21T07:23:38.560 回答
1

您可以使用SFML

它易于使用,并且您可以添加许多物理引擎。

于 2013-01-25T07:55:12.357 回答
0

COCOS2D-x对你来说是可以的,但是它不包括碰撞检测,所以你需要自己实现或者使用第三方lib。我推荐Box2d

于 2013-01-25T07:22:56.953 回答
0

Angel2d是一个面向对象的游戏引擎,用于在开发阶段为游戏开发快速原型。由于它是用 C++ 编写的,以后您也可以将代码用于真正的开发阶段。

于 2013-10-06T13:24:27.440 回答
0

试试Oxygine游戏框架。它基于 SDL2

于 2014-02-24T22:47:39.590 回答