Tanxl Engine Version-0.1 Build-3 更新说明
版本信息
- 版本号: TEnGinE Version-0.1 Build-3
- 版本间隔: 约 1 天
新增模块
1. UniqueID 唯一标识生成器
新增 Tanxl_UniqueID.h 头文件,用于为任意游戏资产生成独一无二的 ID。
cpp
// Tanxl_UniqueID.h 主要功能
class UniqueIdBase
{
public:
static UniqueIdBase& GetIdGenerator();
std::string Generate(); // 生成唯一ID
};
特性:
- 使用单例模式管理 ID 生成器
- 生成的 ID 包含 15 个字符,每 5 个字符用
-分隔 - 字符集包含数字 0-9、小写字母 a-z、大写字母 A-Z(共 62 个字符)
- 基于时间种子随机生成,确保每次运行时 ID 的唯一性
代码修复
1. 头文件保护宏规范化
在 Tanxl_InsertAction.h 中为所有头文件添加了保护宏,防止重复包含:
Build-2:
cpp
#include <GL\glew.h>
#include <GLFW\glfw3.h>
#include <string>
#include <queue>
#include <vector>
Build-3:
cpp
#ifndef GL_GLEW_H
#define GL_GLEW_H
#include <GL\glew.h>
#endif
#ifndef GLFW_GLFW3_H
#define GLFW_GLFW3_H
#include <GLFW\glfw3.h>
#endif
#ifndef STRING
#define STRING
#include <string>
#endif
#ifndef QUEUE
#define QUEUE
#include <queue>
#endif
#ifndef VECTOR
#define VECTOR
#include <vector>
#endif
2. 拷贝构造函数修复
修复了 KeyEventBase 类拷贝构造函数中成员变量未初始化的问题:
Build-2:
cpp
KeyEventBase(const KeyEventBase&) {};
Build-3:
cpp
KeyEventBase(const KeyEventBase&) : MoveKey(NULL), DirectionX(NULL), DirectionY(NULL) {};
这一修复避免了潜在的野指针问题,提高了代码的健壮性。
着色器调整
在 StatevertShader.glsl 中调整了图形单元的顶点颜色,使每个独立方块的显示更加直观:
Build-2(第40行):
cpp
vs_color = vec4(1, 1, 0, 1); // 纯黄色
Build-3(第40行):
cpp
vs_color = vec4(1, 0.8, 0, 1); // 橙黄色
通过为第一个顶点设置略微不同的颜色,可以在视觉上更好地区分每个方块单元。
项目配置更新
更新了 Visual Studio 项目文件,添加对新头文件的引用:
TANXL_ENGINE.vcxproj:添加Tanxl_UniqueID.h的编译项TANXL_ENGINE.vcxproj.filters:在筛选器中注册新文件
版本历史更新
Update-Log.txt 已更新,添加 Build-3 的变更记录。
文件统计
| 项目 | Build-2 | Build-3 | 变化 |
|---|---|---|---|
| 头文件 (.h) | 7 个 | 8 个 | +1 |
| 源文件 (.cpp) | 6 个 | 6 个 | - |
| 着色器 (.glsl) | 2 个 | 2 个 | - |
| 项目配置 | 3 个 | 3 个 | - |
| 总计 | 18 个 | 19 个 | +1 |
Wild_Chicken_Programing /// TANXL 2026/03/10
主要变化包括新增唯一 ID 生成器模块、修复拷贝构造函数未初始化问题、规范化头文件保护宏以及微调着色器颜色。