首页 / 电竞头条 / 游戏 / 正文

使用C++ 开发的游戏引擎,主要针对 2D 游戏的开发

时间:2019-08-24 21:00:08 作者:
使用C++ 开发的游戏引擎,主要针对 2D 游戏的开发


Ouzel

Ouzel是一款主要针对2D游戏开发的C ++游戏引擎。

支持的平台:

  • Windows 7,8,10
  • macOS 10.8+
  • Linux的
  • iOS 8+
  • tvOS 9+
  • Android 3.0+
  • Emscripten

支持的渲染后端:

  • Direct3D 11
  • OpenGL 2, OpenGL 3 and OpenGL 4
  • OpenGL ES 2 and OpenGL ES 3
  • Metal

支持的音频后端:

  • XAudio 2
  • DirectSound
  • CoreAudio
  • OpenAL
  • OpenSL ES
  • ALSA

特征

  • 跨平台(支持Windows,macOS,iOS,tvOS,Android,Linux和Emscripten目标)
  • 多线程(用于渲染,声音和游戏的单独线程)
  • 2D和3D场景管理
  • GUI助手类和管理
  • 位图和真实字体支持
  • 多个并排视口支持
  • XInput,DirectInput,IOKit,Apple GameController和Linux evdev游戏手柄支持
  • 演员动画(包括补间)系统
  • 粒子系统
  • 资源缓存系统
  • 通过加载字符串转换和UTF-8字符串支持进行本地化支持
  • 用于音效播放的软件音频混音器
  • Windows,macOS和iOS上的高DPI支持
  • 易于安装(只需拉动存储库并构建它)

系统要求

  • Windows 7+与Visual Studio 2017或更新版本
  • 使用Xcode 7.2+的macOS 10.10.
  • 使用gcc 5+或clang 3.4+的任何合理的新Linux发行版(支持x86和ARM)

汇编

GNU makefile,Xcode项目和Visual Studio项目文件位于“build”目录中。示例项目的Makefile和项目文件位于“samples”目录中。

您需要下载安装的OpenGL(例如Mesa),ALSA和OpenAL驱动程序才能在Linux上构建Ouzel。对于x86 Linux,还需要libx11,libxcursor,libxi和libxss。

要使用Emscripten构建Ouzel,请将“PLATFORM = emscripten”传递给“make”命令,但在执行此操作之前,请确保已安装Emscripten SDK:

$ make PLATFORM = emscripten

您可以通过在“samples / android”目录中执行以下命令来构建Android示例并在Android设备上运行它们(必须安装Android SDK和NDK并将其添加到PATH):

$ gradle assembleDebug
$ gradle installDebug
$ adb shell am start -n org.ouzel / org.ouzel.MainActivity

因为在Raspbian Stretch上,libEGL.so被重命名为libbrcmEGL.so而libGLESv2.so被重命名为libbrcmGLESv2.so,所以在构建Raspbian 8(Jessie)或更早版本的示例之前,您必须运行以下命令:

$ 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

示例应用

将打开以下代码,在其中心创建一个带有精灵的场景:

#include "ouzel.hpp"
class Example: public ouzel::Application
{
public:
Example():
assets(ouzel::engine->getCache())
{
assets->loadAsset(ouzel::assets::Loader::IMAGE, "player.png");
ouzel::engine->getSceneManager().setScene(&scene);
scene.addLayer(&layer);
cameraActor.addComponent(&camera);
layer.addChild(&cameraActor);
playerSprite.init("player.png");
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::Application> ouzel::main(const std::vector<std::string>& args)
{
return std::make_unique<Example>();
}

头条的代码显示不友好,在给个截图吧

使用C++ 开发的游戏引擎,主要针对 2D 游戏的开发

示例代码运行动态图

使用C++ 开发的游戏引擎,主要针对 2D 游戏的开发

开源地址

由于头条审核网址比较严,防止他们误会是推广,所以大家可以自行搜索下载

也可以关注我的头条号后给我发送 `ouzel`,会自动把下载地址发送给你(做了关键字自动回复)

您知道哪些好用的一键安装包,欢迎评论分享,共同探讨学习

更多更优质的资讯,请关注我,你的支持会鼓励我不断分享更多更好的优质文章。

相关资讯