自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(29)
  • 收藏
  • 关注

原创 Cocos Creator 红点系统设计实战:门面 + 组合 + 观察者,教科书级解耦

本文深度解析了一套CocosCreator红点系统设计方案,通过"门面+组合+观察者"模式和独创的双层注册模型,解决了红点系统常见的聚合漏报、视觉误显、时序错乱和高频刷新等核心问题。系统采用数据层常驻内存与显示层动态绑定的双层架构,配合脏标记+微任务合并刷新机制,在保证功能完整性的同时实现高性能。文章详细拆解了系统各模块设计原理、数据流动机制和关键代码实现,并总结了9大设计原则与最佳实践,为游戏开发中的红点系统设计提供了可直接落地的工程化解决方案。

2026-07-17 09:50:10 324

原创 深入剖析 Cocos Creator 资源管家 ResLoader:高性能加载与内存优化的艺术

ResLoader是一款专为CocosCreator设计的"保姆级"资源加载器,通过引用计数、智能队列和自动重试等机制,解决了游戏开发中的资源管理痛点。其主要特性包括:1) 自动引用计数系统,防止资源被误释放;2) 加载队列去重,避免重复请求;3) 超时控制和自动重试机制,提升弱网环境下的成功率;4) 远程资源缓存转换,简化网络图片使用;5) 智能Bundle管理,支持白名单保护核心资源。该系统还提供调试工具和批量操作功能,使资源生命周期管理更加优雅高效,特别适合大型游戏项目的开发需求。

2026-06-24 14:35:29 319

原创 手撕一个前端全能日志类:位掩码 + 炫彩控制台 + 高性能调用栈

本文介绍了一个基于TypeScript的企业级日志系统,通过位掩码技术实现高效的日志分类管理。该系统支持9种日志类型,每种类型可独立开启/关闭,并采用彩色控制台输出提升可读性。核心功能包括:位掩码快速判断日志类型、可选调用者信息定位、全局调试开关、计时和表格输出等。性能优化方面,采用惰性堆栈解析避免生产环境开销,静态方法调用减少实例化成本。实测显示,该系统在关闭调用者信息时性能接近原生console.log,是替代console.log的理想方案。文末提供了完整源码实现。

2026-05-30 13:18:31 347

原创 Cocos Creator 进阶:打造灵活可控的进度条动画组件(循环与分段)

本文介绍了CocosCreator中两种高级进度条动画组件的设计与实现:TweenProgressLoopComp(循环进度组件)和TweenProgressSegmentComp(分段进度组件)。前者支持循环动画后到达指定进度,适用于加载、充能等场景;后者将进度条划分为多段,每段可自定义数值范围,适合任务流程、等级经验等需求。文章详细解析了两种组件的核心算法、状态管理机制(包括暂停/恢复功能)以及典型应用场景,并提供了关键代码实现。通过封装这些组件,开发者可以更高效地处理复杂进度动画需求,提升开发效率和用

2026-05-09 10:52:54 432

原创 Android应用加固后重新签名详细教程(附参数详解与操作图解)

Android应用加固后必须重新签名,因为加固过程会破坏原始签名信息。本文详细介绍了两种重新签名方法:传统jarsigner方案和推荐的apksigner方案。准备工作包括JDK环境配置和签名文件准备,若无签名文件可使用keytool生成。jarsigner方法需先签名再对齐,而apksigner则先对齐再签名,并支持V1/V2签名方案。最后通过验证命令确认签名是否成功,确保应用安全上架。两种方法均提供详细命令行操作步骤及参数说明。

2026-03-04 14:36:54 569

原创 深入剖析Cocos Creator本地存储管理器:加密、缓存与类型安全实现

本文详细剖析了基于CocosCreator的本地存储解决方案StorageManager及其加密核心EncryptUtil。该系统通过用户隔离设计、多级缓存机制和策略模式加密方案,有效解决了原生localStorage在安全性、性能和多用户支持等方面的不足。重点介绍了其三级缓存优化、类型安全存取方法以及XOR/AES/组合加密策略的实现细节,同时分析了键名验证、异常处理等安全机制。该方案通过灵活的架构设计,在保证数据安全的同时显著提升了存储性能,为游戏开发中的本地数据管理提供了可靠参考。

2026-02-26 14:02:00 789

原创 游戏Excel配置自动化导出二进制工具链并生成对应配置类详解

本文介绍了一套游戏开发中Excel配置表自动化处理工具链,能够将策划维护的Excel表格高效转换为游戏可读取的二进制格式。该工具链通过四个Python脚本实现Excel转CSV、生成JS/TS代码、压缩混淆、二进制压缩的完整流程,相比传统手动转换方式具有三大优势:1)自动化处理减少人工错误;2)生成类型安全的TS代码提供智能提示;3)二进制加载速度快且体积小。工具还支持分包管理和复合主键查询,经测试二进制文件比JSON/TXT格式体积减少50%以上,显著提升游戏配置加载效率。

2026-02-23 13:06:55 859

原创 Cocos游戏中自定义按钮组件(BtnEventComponent)的详细分析与实现

本文介绍了一个功能强大的Cocos游戏按钮组件BtnEventComponent,它扩展了原生按钮功能,支持多种交互模式(点击、长按、多击),提供视觉和听觉反馈机制,并具备防抖、状态管理等特性。组件采用模块化设计,包含交互模式系统、属性配置系统、动画反馈系统和音效反馈系统,通过条件式属性显示和统一事件监听实现高效管理。文章详细解析了组件的核心功能、实现细节、使用示例和性能优化策略,强调其扩展性强、性能优异的特点,适合在复杂游戏项目中作为UI交互基础组件使用。

2025-08-30 12:38:09 1097

原创 高效游戏状态管理:使用双模式位运算与数学运算

本文介绍了一个创新的游戏状态管理工具类GameStateUtil,它采用双模式架构(位运算和数字运算)来高效管理游戏中的任务状态、成就进度等。每个状态仅用2位存储,支持4种状态值(未开始/可领取/已完成/已过期)。位运算模式(索引0-15)使用移位操作实现高性能,数字运算模式(索引16-26)通过预计算幂值处理更多状态。该工具提供了状态获取/设置、批量操作和可视化等核心功能,在内存占用和计算性能间取得平衡,特别适合任务系统、成就系统等场景。文章还讨论了性能优化策略、实际应用案例和扩展方向。

2025-08-02 21:29:42 994

原创 LeetCode 1482. 制作 m 束花所需的最少天数

LeetCode 1482. 制作 m 束花所需的最少天数

2025-04-28 18:07:55 1180

原创 深度解析:TextRenderManager——Cocos Creator艺术字体渲染核心类

TextRenderManager是 Cocos Creator 中实现动态艺术字体渲染的核心单例类。它通过整合资源加载、缓存管理、异步队列和自动布局等功能,支持普通字符模式和图集模式两种渲染方案,适用于游戏中的动态文本(如聊天内容、排行榜)和静态艺术字(如UI标题)的高效渲染。

2025-04-27 14:33:17 739

原创 使用TexturePacker高效打包各类游戏图集格式的脚本Bash+Python详解

在游戏开发、UI 设计等领域,图集打包是一项常见且重要的工作。合理的图集打包可以减少内存占用,提高资源加载效率。今天,我们就来介绍一款强大的图集打包工具 ——texture_packer,它由texture_packer.bat和texture_packer.py两个文件组成,能帮助我们快速完成图集打包任务。

2025-04-23 20:23:44 757

原创 Cocos Creator资源自动释放之2.x和3.x版本的使用及区别

Cocos Creator资源自动释放之2.x和3.x版本的使用及区别

2025-02-17 18:42:30 612

原创 cocos|分享一个用了好几年的list虚拟列表

这是一个基于Cocos Creator写的虚拟列表组件。本组件是配合 Cocos Creator 本身的滚动窗结构去写的,所以在编辑器中操作会很方便,所见即所得。

2024-12-30 10:30:00 613 1

原创 Unity游戏上传微信小游戏步骤

unity游戏转微信小程序游戏详细步骤

2024-10-30 14:41:48 867

原创 Unity 通用模块合集

Unity各功能模块(框架)合集,包括单例基类,Mono管理类,时间(定时器)管理类,事件管理类,资源管理类,对象缓冲池管理类,场景管理类,声音管理类,数据持久化管理,网络管理等各个模块,学习阅读需要有一定基础与了解各种设计模式直接上干货。

2024-10-19 18:58:30 1000

原创 Unity网络模块开发

网络的本质是让我们可以通过物理设备传递2进制数据,让设备和设备之间可以通信协议的字面意思:经过谈判、协商而制定的共同承认、共同遵守的文件网络协议的基本概念:网络协议是计算机网络中进行数据交换而建立的规则、标准或约定的集合指的是计算机网络中互相通信的对等实体之间交换信息时所必须遵守的规则的集合OSI模型是网络通信的基本规则OSI模型是国际组织定义的一套理论基础,主要用于网络通信的规则TCP/IP协议是基于OSI模型的工业实现TCP/IP协议是基于这套理论基础真正实现的通信规则。

2024-10-11 13:15:51 1335

原创 用python实现Excel转Json

简单易懂的Excel转Json

2024-09-20 14:25:33 356

原创 Unity的四种数据持久化方式

数据持久化就是将内存中的数据模型转换为存储模型,以及将存储模型转换为内存中的数据模型的统称;通俗来讲就是将数据存到硬盘,硬盘中数据读到游戏中,也就是传统意义上的存盘PlayerPrefs,是Unity引擎内置的主要用来存储和读取玩家偏好设定的一个类,这是官方手册里写的它的主要用途。但其实它不只可以存储玩家的偏好设定,也可以用来存储简单的数据。

2024-09-19 18:25:58 4626 1

原创 JavaScript事件的防抖和节流

函数防抖和节流函数的防抖和节流在我们的工作中经常会用到,在面试中也经常会出现.因此今天我们来聊聊防抖和节流首先我们来看下面这张用竖线画成的图:这其中的每一条竖线都代表着一次函数调用(如鼠标mousemove事件,input输入事件等) 正常执行的时候,调用的频率很快.但有时,我们并不需要这么高的频率去调用这个函数.假如这是一个调用后台接口的操作,那么就容易造成网络堵塞,大大的增加服务器的压力 函数防抖的时候,每次调用事件都是在正常执行暂停后一段时间(等你歇菜了我再上) 函数节流的时候.

2021-04-09 16:53:08 321 1

原创 JavaScript闭包理解

目录什么是闭包?变量的作用域初识闭包分析闭包经典使用场景1. 使用return 返回函数知识拓展--简化2. 函数作为参数3.IIFE(自执行函数)4. 定时器setTimeout(回调函数都是闭包)知识拓展-回调函数5.循环和闭包思考题思考题1思考题1解答思考题2思考题2解答使用闭包注意点参考我们学习闭包之前先了解作用域和作用域链的相关知识什么是闭包?闭包:闭包就是访问另一个函数作用域变量的函数闭包简单定义为在.

2021-03-31 02:16:43 394

转载 理解Javascript的作用域和作用域链

目录正文什么是作用域作用域的类型作用域嵌套词法作用域作用域链作用域和作用域链是如何工作的Javascript引擎是如何进行变量查找的结论正文作用域和作用域链在Javascript和很多其它的编程语言中都是一种基础概念。但很多Javascript开发者并不真正理解它们,但这些概念对掌握Javascript至关重要。正确的去理解这个概念有利于你去写更好,更高效和更简洁的代码,让你成为一个更优秀的Javascript开发者。因此,在本文中,我将会向大家解释.

2021-03-30 01:23:38 517

原创 promise函数封装(完整版)

// 声明构造函数function Promise(executor) { // 添加默认属性 this.PromiseState = 'pending'; this.PromiseResult = ''; // 接受多个then链式调用 this.callbacks = []; const self = this; // resolve函数 function resolve(data) { if (self.Promis.

2021-02-28 00:31:18 1888 5

原创 flex布局(精华-全)

目录什么是Flex布局flex布局中的一些基本概念容器的一些属性项目的一些属性什么是Flex布局flex布局表示弹性布局,为盒状模型提供最大的灵活性。适用范围任何一种元素都可以指定为flex布局.wrap{ display:flex;}1 2 3使用时应该注意些什么?如果是Webkit内核的浏览器,需要加上-webkit前缀 在父级元素设置为flex布局后,子元素的float、clear、vertical-align属性都将失效,所...

2021-02-23 21:06:31 2126 3

原创 ES6+知识点集(详细-超长篇)

目录let关键字const关键字解构赋值数组解构对象解构字符串/数值/布尔值浅拷贝交换变量遍历Map结构map函数let关键字声明变量 块级作用域 变量不能重复声明 不存在变量提升 不影响作用域链const关键字声明常量并且必须赋值 不存在变量提升 不能重复赋值 但可以更改和添加常量对象的属性 块级作用域 const car = { type: "porsche", model: "911", color: "Bla.

2021-02-01 20:40:44 2455

原创 由变量提升谈谈 JavaScript Execution Context

1.'webpack-dev-server' 不是内部或外部命令,也不是可运行的程序或批处理文件。 删除node_modules后再cnpm install2.missing script: dev(启动命令)检查package.json中的配置命令是否配置或配置错误 查看是否有两个package.json文件存在...

2021-01-27 23:51:09 254

原创 ajax讲义

jax 运行原理Ajax 相当于浏览器发送请求与接收响应的代理人,以实现在不影响用户浏览页面的情况下,局部更新页面数据,从而提高用户体验。Ajax的实现步骤:1.创建Ajax对象var xhr = new XMLHttpRequest();2.告诉Ajax请求地址和请求方式xhr.open('get','http://.....');3.发送请求xhr.send();4.获取服务器端和客户端的相应数据xhr.onload = function(){ co

2021-01-24 17:39:00 138

原创 三分钟了解vue中slot插槽的写法

哈哈哈,上代码//子组件<template> <div> <slot name="header">我是header</slot><!-- 具名插槽 --> <p><slot>default</slot></p><!-- 匿名/默认/缺省插槽 --> <slot name="footer">我是footer</slot>

2021-01-20 21:23:08 751

原创 JS正则表达式完整版(入门到精通)

在实现方式上:v-if是根据后面数据的真假值判断直接从Dom树上删除或重建元素节点 v-show只是在修改元素的css样式,也就是display的属性值,元素始终在Dom树上。在性能消耗上:v-if有更高的切换消耗,不适合做频繁的切换; v-show有更高的初始渲染消耗,适合做频繁的额切换;...

2021-01-13 22:52:14 1036

使用TinyPNG、Terser 、 Uglify 自动批量压缩混淆项目代码图片等

内置bat+Python+TinyPNG压缩图片、bat+Python+Terser 批量压缩混淆、bat+Python+ Uglify 批量压缩混淆 三个文件夹

2025-06-08

批量打包图集 已经实现多功能 已扩展cocos、Unity引擎,并增加使用及扩展说明

批量打包图集 已经实现多功能 已扩展cocos、Unity引擎,并增加使用及扩展说明

2025-06-08

编辑器自动化 excel工具转二进制数据、转配置容器类,及本地化存取数据等

编辑器自动化 excel工具转二进制数据、转配置容器类,及本地化存取数据等

2024-10-16

Unity网络协议框架

包含自动化生成数据类消息类枚举类,序列化反序列化,粘包分包等

2024-10-16

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除