GKE2D游戏引擎简介(开发中)



  • GKEngine

    logo

    引擎(GKE2D)

    使用单例模式封装设备(Device),处理器(Processor),处理各种回调函数以及信号。它用来初始化整个游戏引擎。

    /**
    * DEMO.CPP
    * 创建一个游戏窗口程序
    */
    #include "../gke2d.h"
    #include "../logger.h"
    
    int main(int argc, char *argv[]){
        GKE2D::Instance().InitEnv(800, 600, "GKE2D");
        GKE2D::Instance().SetLogLevel(GKE2D_LOG_LEVEL_DEBUG);
        GKE2DLogInfo("Hello, GEK2D!!!");
        GKE2D::Instance().Start();
        GKE2D::Instance().Release();
        return 0;
    }
    

    精灵(Sprite)

    游戏中所有可见的物件都是精灵(移动的背景,怪物,玩家等)。

    物理(Physics)

    可以将精灵添加入物理世界中,让精灵能够变得更加真实,拥有质量,摩擦系数,并且能够检测和处理碰撞。

    场景(Scene)

    每个场景都是独立的空间,它拥有自己的精灵和物理世界。

    渲染器(Renderer)

    负责游戏的所有渲染任务。

    窗口设备(WindowDevice)

    用来处理不同平台游戏窗口的显示,能够注册窗口事件(窗口大小变化,鼠标,键盘,手柄),负责渲染缓冲与窗口图形缓冲区的交换。

    资源管理器(ResourceManager)

    GKE2D的资源管理器有两个,一个提供给引擎内部使用(InternalResource),另一个提供给用户使用(UserResource),目前支持纹理和着色器的存储。

    // 获取资源管理器
    GKE2D::Resource()
    // 释放引擎使用的所有资源包括用户资源
    // 请在结束游戏循环时调用
    GKE2D::Release()
    

    日志

    GKE2D内部使用的日志工具,支持DEBUG, INFO, WARM, ERROR四种日志级别,日志在引擎初始化的时候被创建,所以在未初始化引擎的时候会触发assert(),日志支持格式化输入,以下是使用代码:

    GKE2DLogDebug("Hello, GKE2D!!!");
    GKE2DLogInfo("System Version {}.{}.{}", 1, 0, 1);
    GKE2DLogWarn("TCP disconnect, reconnect count: {}", counts);
    GKE2DLogError("Audio init error, code:{}", 100);
    

    更新概要

    日期 内容
    2019-09-12 添加InputDevice类,优化游戏主循环提升流畅度,物体碰撞位置计算
    2019-09-11 添加相机功能,Element可以设置是否使用相机
    2019-09-10 添加物理引擎碰撞检测回调函数
    2019-09-09 添加Scene类管理Element,支持场景切换和渲染
    2019-09-06 添加Font类,优化游戏循环(固定时间步长)
    2019-09-05 添加单元测试,添加Element基类(派生类Sprite/Text)
    2019-08-29 添加内部及外部资源管理器,添加Logger类
    2019-08-28 添加GKE2D类和WindowDevice类,清理Renderer类
    2019-08-27 添加Scene类
    2019-08-26 优化Sprite类,Physics类和Renderer类

Log in to reply