- 博客(19)
- 收藏
- 关注
原创 游戏开发利器:对象池,让游戏子弹射击行云流水
对象池(Object Pooling)是一种设计模式,它预先创建好一组可重用的对象,并将它们存储在一个“池子”中。当需要使用对象时,不是重新创建,而是从池中“借用”一个已经存在的对象。当对象使用完毕后,也不是立即销毁,而是将其“归还”到池中,等待下次被复用。游戏开始前,枪械库里已经准备好了足够多的枪支(子弹对象)。玩家需要枪支时,直接从库里拿一把(从池中获取一个子弹对象)。枪支用完后,不是扔掉,而是放回库里,经过简单的维护(重置状态),等待下一个玩家使用(归还到池中)。
2025-09-16 17:32:16
1284
原创 【每个人都应该读】我们将思考权交给ai的那一刻,便放弃了做人的资格
当一个人用“我需要帮助”、“写个文案”这样模糊的指令去提问时,暴露的是一种思维的惰性——他们甚至不愿花时间厘清自己的需求,却指望一个算法能读懂他们混乱的内心。如果我们连情感倾诉和沟通都试图用AI来代劳(例如,用AI生成情书、道歉信、安慰朋友的话),那我们实际上是在用标准的、冰冷的模板,取代真实、笨拙却真诚的人类互动。让我们善用AI这把强大的“智器”,但它永远无法、也不应取代我们作为“人”的尺度——我们的批判精神、我们的创造力和我们充满温度的灵魂。它的答案是基于普遍的数据,但你的情境是特殊的。
2025-08-28 13:32:30
1016
原创 编程语言风云榜:Python 登顶,C++ 稳居高位,为何值得学
Python 和 C++ 之所以能位居编程语言排行榜前列,是因为它们各自在不同的领域发挥着不可替代的价值。Python以其易用性、高开发效率和丰富的生态,成为数据科学、AI、Web 和自动化领域的首选,是快速迭代和跨领域开发的利器。C++则凭借其极致性能、底层控制和构建复杂系统的能力,在游戏、操作系统、高性能计算和嵌入式等领域占据核心地位,是追求性能和稳定性的基石。它们并非竞争关系,而是互补关系。
2025-08-26 10:56:23
2472
原创 一篇文章搞定面向对象三大特性:封装、继承、多态
封装是面向对象编程的第一大特性。它指的是将数据(属性)和操作数据的方法(行为)捆绑在一起,形成一个独立的单元——类(Class)。同时,它还通过访问修饰符(publicprivateprotected)来限制外部对类内部成员的直接访问,只暴露必要的接口。你知道它能做什么(通过公共接口),但你不需要知道它是怎么做的(内部实现细节被隐藏)。比如电视遥控器,你按“音量+”,电视音量就变大,你不需要知道遥控器内部的电路是怎么工作的。
2025-08-25 18:05:59
1561
原创 C++ 新手第一个练手小游戏:井字棋
恭喜你!你已经成功完成了你的第一个 C++ 进阶小游戏项目——井字棋!这标志着你对 C++ 的理解又深入了一步。通过这个项目,你不仅掌握了、函数的运用、引用传递等重要概念,更重要的是,你学会了如何将一个相对复杂的程序拆解成更小、更易于管理的部分,这是软件开发中非常重要的能力。C++ 的学习是一个循序渐进的过程。多动手,多思考,多尝试,你就能不断突破,驾驭这门强大的语言,创造出更多精彩的作品!
2025-08-21 13:59:33
989
原创 C++ 内存管理库 <memory>
C++<memory>库中的智能指针是现代 C++ 编程的基石。它们将内存管理从程序员的日常负担中解放出来,通过 RAII 机制,极大地提升了代码的安全性、可读性和健壮性。独占所有权,轻量高效,是默认选择。共享所有权,通过引用计数管理生命周期,适用于多所有者场景。非拥有观察者,解决shared_ptr循环引用问题。
2025-08-20 15:14:40
1361
原创 热补丁在游戏开发当中的场景:无需停服
热补丁,顾名思义,就是在系统热运行状态下,打上补丁。在游戏领域,它指的是在不重启游戏客户端或服务器的前提下,对游戏逻辑、数据、资源进行实时更新和修复的技术。它就像给一辆正在高速行驶的汽车更换轮胎,或者给一个正在运行的精密仪器更换零件,玩家几乎无感知,游戏体验不中断。核心目标:确保游戏服务持续在线。针对紧急Bug、安全漏洞、数值平衡等问题,能够迅速部署修复。避免玩家频繁下载大包,节省流量和时间。热补丁技术是现代游戏,尤其是 Live Service 游戏不可或缺的一部分。
2025-08-20 10:41:11
897
原创 【C/C++ 指针】:从入门到精通,告别“野指针”的恐惧!
要理解指针,首先要理解计算机的内存。你可以把计算机的内存想象成一个巨大的、连续的、由无数个小格子(字节)组成的公寓楼。每个小格子都有一个唯一的门牌号,这个门牌号就是它的内存地址。当你声明一个变量时,比如,系统就会在内存中找一个空闲的格子(或几个格子,取决于数据类型大小),把10存进去,并给这个格子一个门牌号。指针,本质上就是一个变量,它存储的不是普通的数据(比如整数、字符),而是另一个变量的“门牌号”(内存地址)。用一张图来表示:fill:#333;color:#333;color:#333;
2025-08-19 11:32:02
2416
原创 单例模式:确保一个类只有一个实例【设计模式】
单例模式是一种创建型设计模式这是单例模式最基本也是最重要的目标。它通过限制类的构造函数来防止外部随意创建新实例。既然只有一个实例,那么就需要一个统一、方便的途径来获取这个唯一的实例。可以把单例模式想象成一个**“公司的 CEO”**:一个公司通常只有一个 CEO,并且所有需要 CEO 决策的事情,都必须通过这个唯一的 CEO 来处理。你不能随便“创建”一个新的 CEO,只能找到当前公司的那个 CEO。单例模式提供了一种简单直接的方式来确保一个类只有一个实例并提供全局访问点。
2025-08-18 18:35:18
1115
原创 责任链模式:解决流程业务产生大量if-else的方式【设计模式】
责任链模式是一种行为型设计模式,它将多个处理者组成一条链条,让请求沿着链条传递,直到有一个处理者能处理该请求。“谁能处理谁处理,处理不了就传给下一个”。你去公司报销(请求),先找部门行政(第一个处理者);行政只能处理500元以内的报销,超过则转给财务专员(第二个处理者);财务专员能处理5000元以内的,超过则转给财务经理(第三个处理者);直到某个处理者能处理你的报销,或链条结束(如超过最高审批额度则驳回)。打破“大而全”的处理逻辑,让每个处理者专注于自己的职责;
2025-08-17 19:23:27
906
原创 工厂模式:一篇文章学会“对象创建”的最佳方式【设计模式】
大家好,上一篇文章我们提到了设计模式中常用的解决if-else代码臃肿场景下的策略模式,对于if-else的解决方法还有一种常见的设计模式,就是我们今天介绍的这个主题–工厂模式。当你发现代码中充斥着大量的对象创建逻辑和条件判断时,不妨考虑使用工厂模式,将对象的创建交给专门的"工厂"来处理,让你的代码更加灵活、清晰和易于维护。这样,客户端只需要知道所需产品的工厂,而无需知道具体的创建过程,实现了创建与使用的分离。实现了抽象工厂接口,负责创建具体的产品对象,包含了具体的创建逻辑。
2025-08-16 07:38:27
1007
原创 策略模式:一篇文章告别 if-else 炼狱【C++】【设计模式】
策略模式是一种行为型设计模式,它定义了一系列算法,将每一个算法封装起来,并使它们可以相互替换。策略模式使得算法可以独立于使用它的客户端而变化。将变化的“行为”从不变的“骨架”中抽离出来,让它们各自独立,然后可以在运行时根据需要进行替换。你有一个乐高机器人(上下文),它有手臂(可以执行动作)。你可以为机器人安装不同的手臂(具体策略):有的手臂可以抓取物品,有的手臂可以发射炮弹,有的手臂可以挥舞光剑。这些手臂都遵循一个共同的接口(策略接口):它们都能“执行动作”。
2025-08-15 17:23:12
2249
原创 C++ 双缓冲(Double Buffer)实现读写分离:兼顾性能与线程安全,游戏引擎中的应用实践
双缓冲模式是一种强大而优雅的并发编程技术,它通过读写分离和原子翻转,有效地解决了多线程环境下数据一致性与性能之间的矛盾。我们的 C++实现利用管理生命周期,const强制只读性,以及std::mutex保证翻转的原子性,提供了一个线程安全且易于使用的解决方案。后台线程处理数据,前端线程展示数据。生产者将数据写入一个缓冲区,消费者从另一个缓冲区读取。更新配置时,在后台准备新配置,完成后原子性切换,不影响正在运行的业务。。
2025-08-14 18:33:08
1878
原创 【C++库】nlohmann/json库处理JSON数据
这是一个头文件专用 (header-only)库,意味着你不需要编译它,只需将其json.hpp文件包含到你的项目中即可。充分利用了 C++11/14/17 的特性,提供了非常直观和类似 Python 字典/列表的 API。MIT 许可证。提供了非常方便的机制,可以将自定义的结构体/类与 JSON 对象进行双向转换,只需定义to_json和from_json两个非成员函数。// 自定义结构体int age;
2025-08-14 11:55:29
1578
原创 【C++ 函数参数传递方式】:从 const 到值 / 引用 / 指针
输入参数优先用对于非基本类型(自定义类、等),如果函数只需读取参数,这是最优选择 —— 无拷贝开销,且能保证安全。需修改参数时用Type&函数需要修改参数且希望外部感知到变化时,用非const引用,比指针更简洁安全。基本类型和小型对象用值传递intdouble等基本类型,或体积小的自定义类型,拷贝开销可忽略,值传递语义更清晰。参数可能为nullptr时用指针Type*避免裸指针除非必须(如兼容 C API、操作 C 风格数组),否则优先用引用;动态内存管理建议用智能指针(
2025-08-14 11:10:33
1241
原创 计算机初学者入门之计算机仓库(磁盘)
计算机磁盘就像仓库,负责长期存储数据(文档、照片、程序等),即使断电也不会丢失。CPU是大脑处理信息,内存是工作台临时存放当前任务,而磁盘(HDD/SSD)作为仓库容量大但速度较慢。工作时,数据从磁盘调入内存供CPU处理,操作完成再存回磁盘。HDD采用机械存取速度较慢但价低,SSD电子存取更快但成本高。磁盘确保数据持久性、系统启动和存储扩展,是计算机不可或缺的基础部件。初学者只需记住:CPU=大脑,内存=工作台,磁盘=仓库,三者协同保障
2025-08-13 10:16:19
672
原创 计算机初学者入门之计算机工作台(内存)
计算机内存(RAM)是CPU处理数据的临时工作台,相比硬盘这个仓库能更快提供数据。内存大小决定计算机同时处理任务的能力,内存不足会导致卡顿。工作流程包括:从硬盘加载数据到内存供CPU快速处理,关机后数据消失。
2025-08-13 10:00:30
867
原创 计算机初学者入门之计算机大脑(CPU)
本文深入浅出地讲解了CPU的工作原理及其核心部件。CPU作为计算机的大脑,主要由控制单元(指挥中心)、算术逻辑单元(计算引擎)和寄存器(高速工作台)三大部分组成,通过取指、解码、执行、写回四个步骤完成指令周期。
2025-08-12 17:40:57
1392
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅