Shiva 现代跨平台C ++引擎开源项目

我要开发同款
匿名用户2019年07月27日
20阅读
开发技术C/C++
所属分类程序开发、常用工具包
授权协议MIT

作品详情

Shiva是一个具有模块化特性的现代跨平台C++引擎。Shiva用C++17编写,它通过在编译时使用最多的功能,同时在运行时保持可扩展性,旨在在运行时非常快。它基于可单独使用或一起使用的模块体系结构。

示例代码:

#include<shiva/world/world.hpp>namespacemy_game::systems{classbar:publicshiva::ecs::pre_update_system<bar>{public:bar(shiva::entt::dispatcher&dispatcher,shiva::entt::entity_registry&registry,constfloat&fixed_delta_time):system(dispatcher,registry,fixed_delta_time){}voidupdate()noexceptfinal{std::cout<<__FUNCTION__<<"name:"<<class_name()<<std::endl;}reflect_class(bar);staticconstexprautoreflected_functions()noexcept{returnshiva::meta::makeMap();}staticconstexprautoreflected_members()noexcept{returnshiva::meta::makeMap();}};classfoo:publicshiva::ecs::logic_update_system<foo>{public:foo(shiva::entt::dispatcher&dispatcher,shiva::entt::entity_registry&registry,constfloat&fixed_delta_time):system(dispatcher,registry,fixed_delta_time){}voidupdate()noexceptfinal{std::cout<<__FUNCTION__<<"name:"<<class_name()<<std::endl;}reflect_class(foo);staticconstexprautoreflected_functions()noexcept{returnshiva::meta::makeMap();}staticconstexprautoreflected_members()noexcept{returnshiva::meta::makeMap();}};classfolk:publicshiva::ecs::post_update_system<folk>{public:folk(shiva::entt::dispatcher&dispatcher,shiva::entt::entity_registry&registry,constfloat&fixed_delta_time):system(dispatcher,registry,fixed_delta_time){}voidupdate()noexceptfinal{if(counter==10){this->dispatcher_.trigger<shiva::event::quit_game>(0);}std::cout<<__FUNCTION__<<"system:"<<class_name()<<std::endl;counter++;}reflect_class(folk);staticconstexprautoreflected_functions()noexcept{returnshiva::meta::makeMap();}staticconstexprautoreflected_members()noexcept{returnshiva::meta::makeMap();}private:size_tcounter{0};};}namespacemy_game{classmy_world:publicshiva::world{public:my_world(){system_manager_.load_systems<my_game::systems::foo,my_game::systems::bar,my_game::systems::folk>();}};}intmain(){my_game::my_worldworld;returnworld.run();}

 

声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态

评论