Ouzel作为专为2D游戏设计的C++引擎,以其跨平台兼容性和丰富功能著称。本文将详细介绍其支持平台、核心特性及编译方法。
Windows 7/8/10
macOS 10.8+
Linux全系列
iOS 8+
tvOS 9+
Android 3.0+
Emscripten示例环境
Direct3D 11
OpenGL 2/3/4
OpenGL ES 2/3
Metal图形API
XAudio 2
CoreAudio
OpenAL
OpenSL ES
ALSA音频系统
1. 跨平台支持Windows/macOS/iOS等七大平台
2. 采用多线程架构处理渲染、声音和游戏逻辑
3. 同时支持2D与3D场景管理
4. 提供GUI辅助类和管理工具
5. 兼容位图与矢量字体渲染
6. 支持多视口并列显示
7. 全面适配主流游戏手柄输入
8. 包含完整的动画系统与补间功能
9. 内置粒子效果生成系统
10. 智能资源缓存管理机制
11. 多语言本地化支持与UTF-8编码
12. 软件音频混音器处理音效
13. 完美适配各平台DPI缩放
14. 简易安装流程,克隆即编译
#include "assets/Bundle.hpp"
#include "core/Engine.hpp"
#include "scene/Camera.hpp"
#include "scene/Layer.hpp"
#include "scene/Scene.hpp"
#include "scene/SpriteRenderer.hpp"
class Example: public ouzel::Application
{
public:
Example():
assets(ouzel::engine->getCache(),
ouzel::engine->getFileSystem())
{
assets.loadAsset(ouzel::assets::Loader::Image, "player", "player.png");
ouzel::engine->getSceneManager().setScene(&scene);
scene.addLayer(&layer);
cameraActor.addComponent(&camera);
layer.addChild(&cameraActor);
playerSprite.init("player");
player.addComponent(&playerSprite);
layer.addChild(&player);
}
private:
ouzel::scene::Scene scene;
ouzel::scene::Layer layer;
ouzel::scene::Camera camera;
ouzel::scene::Actor cameraActor;
ouzel::scene::SpriteRenderer playerSprite;
ouzel::scene::Actor player;
ouzel::assets::Bundle assets;
};
std::unique_ptr ouzel::main(const std::vector& args)
{
return std::make_unique();
}
build目录提供GNU makefile/Xcode/VS项目文件,示例项目文件存放于samples目录。Linux环境需安装OpenGL(Mesa)、ALSA和OpenAL驱动,x86架构还需libx11等依赖库。
Emscripten编译命令:
$ make PLATFORM=emscripten
Android示例构建流程:
$ gradle assembleDebug
$ gradle installDebug
$ adb shell am start -n org.ouzel/org.ouzel.MainActivity
树莓派需安装开发库和内核头文件,Raspbian Stretch需执行符号链接:
$ sudo ln -s /opt/vc/lib/libEGL.so /opt/vc/lib/libbrcmEGL.so
$ sudo ln -s /opt/vc/lib/libGLESv2.so /opt/vc/lib/libbrcmGLESv2.so
Windows 7+需VS2017+
macOS 10.10+需Xcode9.3+
Linux需gcc7+或clang5+

Ouzel引擎凭借其全面的平台适配能力和丰富的功能特性,为开发者提供了高效便捷的2D游戏开发解决方案。无论是跨平台支持还是功能完整性,都展现出强大的竞争力。