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类