【V0.1B3】从零开始的2D游戏引擎开发之路

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 生成器模块、修复拷贝构造函数未初始化问题、规范化头文件保护宏以及微调着色器颜色。

相关推荐
敢敢のwings1 分钟前
智元 GO-2 与 AgiBot-World 深度解读
开发语言·后端·golang
yaoxin5211239 分钟前
503. Java 反射 - 编写 ServiceFactory 类
java·开发语言·python
一个帅气昵称啊30 分钟前
.Net C# AI智能体开发-快速开始
开发语言·c#·.net
冬夜戏雪1 小时前
agent的trace 和eval
开发语言·前端·javascript
Sagittarius_A*1 小时前
Burst Lab | PHP 审计 13|反序列化(三):POP 链构造与 Gadget Chain 分析
开发语言·web安全·php·代码审计·反序列化
职场的momo1 小时前
11个后端与AI岗位同时开放:Java、网关、推理优化怎么匹配
java·开发语言·人工智能
蓝速科技2 小时前
蓝速科技丨新旧楼宇混杂场景下会议室预约门牌屏一体化改造方案
开发语言·科技·php
梦想的旅途22 小时前
Python实现企业微信文本消息发送
开发语言·python·企业微信
大鹏说大话3 小时前
美业微信会员系统哪个好
开发语言
程序员与背包客_CoderZ4 小时前
高性能分布式KV存储引擎RocksDB入门与C/C++编码实战
c语言·开发语言·数据库·c++·分布式·分布式数据库·rocksdb