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

更新类型: 代码清理与构建系统优化


概述

Build-5 是继 Build-4 之后的一次精细化维护更新,主要聚焦于代码减负构建系统优化。本次更新移除了尚未使用的功能代码,简化了头文件包含结构,并解决了调试符号文件问题,使代码更加精简、编译更高效。


详细变更

1. Utils 工具模块精简

移除未使用的纹理加载功能:

移除项 移除原因
loadTexture() 函数 当前渲染仅支持纯色网格,纹理功能尚未集成
loadCubeMap() 函数 立方体贴图在当前2D引擎中无使用场景

影响分析:

  • 代码减负: 减少约35行冗余代码
  • 编译加速 : 减少 SOIL2 库的链接依赖
  • 清晰度提升: 类声明更专注于当前实际使用的功能

2. 头文件包含保护重构

移除冗余的外部包含保护

四个核心类文件移除了外层 #ifndef/#define 保护:

文件 变化说明
Tanxl_DataBase.h 简化保护层次
Tanxl_GameState.h 简化保护层次
Tanxl_GameEvent.h 简化保护层次
Tanxl_GameState.h 移除结束标记
增强的包含保护

Tanxl_OpenGL_Draw.h 添加更严格的包含保护:

Tanxl_OpenGL_Draw.hL5-L19

复制代码
#ifndef TANXL_DATABASE_H
#define TANXL_DATABASE_H
#include "Tanxl_DataBase.h"
#endif

#ifndef TANXL_GAMESTATE_H
#define TANXL_GAMESTATE_H
#include "Tanxl_GameState.h"
#endif

设计理念转变:

  • 从"每个文件独立保护"转向"依赖文件自保护"
  • 减少编译预处理开销
  • 遵循现代C++项目的包含最佳实践

3. 构建系统修复

修复 SOIL2 库 PDB 文件缺失问题:

问题描述:

  • 在 Debug 构建配置下,SOIL2 库缺少调试符号文件(.pdb)
  • 导致调试时无法跟踪 SOIL2 库内部调用栈
  • 影响开发者的调试体验

解决方案:

  • 调整项目配置,确保正确链接 SOIL2 的调试版本
  • 验证第三方库的符号文件完整性
  • 优化构建过程中的依赖解析

技术影响:

  • 调试时能正确显示 SOIL2 库调用栈
  • 内存调试工具能跟踪纹理加载过程
  • 异常发生时能精确定位到库内部错误

4. 代码质量提升

统一代码风格
  • 保持所有输出使用 std:: 前缀(Build-4 引入的标准)
  • 延续头文件包含保护的一致性改进
减少编译警告
  • 移除未使用的函数声明,消除编译器警告
  • 简化包含结构,减少重复包含警告

版本对比总结

复制代码
Build-4 (2022-04-29) → Build-5 (2022-05-01)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
🗑️  代码清理:        移除35行未使用代码
🛡️  包含优化:        重构4个核心头文件保护
🔧  构建修复:        解决SOIL2 PDB问题  
📦  依赖精简:        减少不必要的库链接
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

架构演进分析

设计哲学变化

  1. 实用主义导向: 移除"未来可能用到"的功能,专注当前需求
  2. 简化优先: 减少抽象层次,使代码更直观易懂
  3. 构建友好: 优化编译配置,提升开发效率

技术债务管理

  • 清理冗余: 移除纹理加载等超前功能
  • 标准化: 统一头文件保护模式
  • 可维护性: 简化复杂嵌套的包含关系

文件变更清单

文件 变更类型 变更说明
Utils.h 🔴 功能移除 移除 loadTextureloadCubeMap 声明
Utils.cpp 🔴 功能移除 移除 loadTextureloadCubeMap 实现
Tanxl_DataBase.h 🟡 结构优化 移除外层 #ifndef TANXL_DATA_BASE 保护
Tanxl_GameState.h 🟡 结构优化 移除外层 #ifndef GAME_STATE_BASE 保护
Tanxl_GameEvent.h 🟡 结构优化 移除外层 #ifndef GAME_EVENT_BASE 保护
Tanxl_OpenGL_Draw.h 🟢 增强 添加对数据库和状态类的包含保护
TANXL_ENGINE.vcxproj 🔧 配置修复 修复 SOIL2 库 PDB 文件配置

Wild_Chicken_Programing /// TANXL 2026/04/01

相关推荐
cch89182 小时前
汇编与Java:底层与高层的编程对决
java·开发语言·汇编
75115893 小时前
笔记:postgresql如何下载驱动并安装?
数据库·postgresql
荒川之神3 小时前
拉链表概念与基本设计
java·开发语言·数据库
Highcharts.js3 小时前
适合报表系统的可视化图表|Highcharts支持直接导出PNG和PDF
javascript·数据库·react.js·pdf
cch89183 小时前
汇编与Go:底层到高层的编程差异
java·汇编·golang
chushiyunen3 小时前
python中的@Property和@Setter
java·开发语言·python
禾小西3 小时前
Java中使用正则表达式核心解析
java·python·正则表达式
yoyo_zzm3 小时前
JAVA (Springboot) i18n国际化语言配置
java·spring boot·python
刘~浪地球3 小时前
Redis 从入门到精通(一):简介、安装与配置
数据库·redis·缓存