自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 设计模式之观察者模式

观察者模式是一种行为设计模式,它定义了一种一对多的依赖关系,当一个对象的状态发生变化时,所有依赖于它的对象都会得到通知并自动更新。观察者模式通过定义一对多的依赖关系,使得对象之间的通信变得更加灵活和松耦合。通过接口和具体类的实现,可以实现动态的观察者管理和事件通知。

2024-07-14 11:36:10 815 1

原创 优化Cocos Creator 包体体积

优化Cocos Creator项目的包体体积是一个常见且重要的任务,尤其是在移动设备和网络下载速度受到限制的环境中。

2024-07-13 18:47:59 1484

原创 MVC模式详解

MVC模式是一种广泛使用的设计模式,通过将应用程序分为模型、视图和控制器三部分,实现了关注点分离,提高了代码的可维护性和可扩展性。尽管引入MVC模式可能增加系统的复杂性,但对于中大型应用程序来说,其优点远远超过缺点。在实际应用中,MVC模式可以与其他设计模式结合使用,以实现更复杂和灵活的系统架构。

2024-07-13 11:06:20 2221

原创 设计模式之单例模式

单例模式(Singleton Pattern)是一种设计模式,其目的是确保一个类只有一个实例,并提供一个全局访问点来访问该实例。这在某些情况下非常有用,比如需要一个唯一的配置管理器、日志记录器、或资源管理器。

2024-07-11 21:26:36 600

原创 状态同步和帧同步原理细节

状态同步通过周期性发送游戏状态,适用于简单实现和高一致性需求的场景,但可能引入延迟和带宽消耗。帧同步通过同步执行输入,确保所有客户端状态的一致性,适用于高精度和低延迟需求的场景,但实现复杂且需要处理同步问题。

2024-07-11 15:40:53 759

原创 Cocos Creator 游戏性能优化指南

游戏开发中,流畅的游戏体验是玩家最关心的问题之一。一个卡顿的游戏会严重影响玩家的体验,甚至让玩家失去继续玩的兴趣。因此,优化游戏性能是每个游戏开发者必须掌握的技能。本文将详细介绍在使用Cocos Creator进行游戏开发时的一些性能优化技巧。

2024-07-04 08:47:40 5549

原创 游戏开发中的对象池:制作与使用

对象池技术(Object Pooling)是一种优化方法,用于管理和重复利用对象,减少频繁创建和销毁对象的开销,特别适用于需要频繁生成和回收对象的场景,如子弹、敌人、特效等。通过对象池技术,可以显著提升游戏性能,减少内存碎片和垃圾回收的压力。

2024-07-04 08:21:51 719

原创 Typescript中any和unknown的区别

Typescript 的 unknown 类型是一种特殊的类型,它表示的是那些类型不确定的值的类型。unknown 类型和 any 类型的主要区别是,unknown 类型更加安全,因为在对 unknown 类型的值进行任何操作之前,我们必须进行某种形式的类型检查或断言。而 any 类型则可以直接进行任何操作,而不需要类型检查,这可能会导致潜在的错误。类型需要进行类型检查,必须明确地将变量转换为所需类型。unknown 类型不能访问其属性,也不能调用其方法,除非使用类型断言或类型保护。

2024-07-03 14:51:41 221

原创 Typescript Null和Undefined的区别

Typescript是一种基于JavaScript的变成语言,支持静态类型检查和面向对象的特性。Typescript中的Null和Undefined分别表示空值和未定义的值。。

2024-07-03 14:50:47 812

原创 死锁出现的必要条件和如何处理死锁?

死锁是指多个进程在执行过程中因竞争资源而造成的一种互相等待的现象,若无外力作用,这些进程将无法推进。

2024-07-01 18:02:44 427

原创 TCP/IP协议详解

TCP/IP协议是互联网和许多现代网络通信的基础。它提供了一套标准化的通信协议,使得不同设备和系统能够在同一网络上互相通信。本文将详细介绍TCP/IP协议的各个方面,帮助读者理解其工作原理和应用场景。

2024-07-01 17:59:07 5347

原创 ArrayList和List的区别

ArrayList是非泛型集合类。它实现了一个动态数组,可以自动调整大小,以便存储任意类型的对象。

2024-06-28 08:24:27 321

原创 Dictionary、Map底层源码详解

Dictionary 字典型数据结构,是以关键字Key 和 值Value 进行一一映射的。Key的类型并没有做任何的限制,可以是整数,也可以是的字符串,甚至可以是实例对象。对于实例对象和字符串来说,它们没有直接的数字作为Hash标准,因此它们需要通过内存地址计算一个Hash值。

2024-06-28 08:22:32 1281

原创 Stack底层源码解析

Stack是一个通用集合类,用于存储具有先进后出特性的一组对象。底层实现依赖于动态数组,并通过一系列方法提供基本的栈操作,例如入栈、出栈和查看栈顶元素。

2024-06-26 09:36:47 302

原创 Queue底层源码解析

实现了一个先进先出的集合,提供了在队列中进行元素的添加和移除的功能。底层实现依赖于循环数组。

2024-06-26 09:28:40 1078

原创 状态机详解

状态机(State Machine)是一种数学模型,用于描述对象在不同状态之间的转移和行为,由一组状态、一组事件和一组转换规则构成。

2024-06-25 15:13:06 1774

原创 List底层源码详解

常用的List是个通用的集合类,常常用它代替数组,因为它可以动态扩容,在我们写的时候不用手动去分配数组大小。List底层实现的关键在于其动态数组的管理、自动扩展机制以及内存操作优化。List效率不高,通用性强,大部分接口都是使用线性复杂度的算法,当List里的元素不断增加时,会多次重新new数组,导致原来的数组被抛弃,最后当GC被调用时造成回收的压力。

2024-06-25 15:11:43 1140

原创 WebSocket详解

WebSocket是一种在单个TCP连接上进行全双工通信的协议,工作在OSI模型的应用层。它允许浏览器和服务器之间建立持久连接,从而进行双向实时的数据传输。

2024-06-21 15:24:24 984 1

原创 HTTP协议详解

HTTP协议工作在应用层,基于TCP/IP协议传输数据。HTTP 的基本工作原理是客户端通过使用网页浏览器,发起一个HTTP请求到服务器上指定端口(默认端口为80),服务器接收到请求后,返回相应的资源。这些资源可以是网页、图像、音频文件、视频等。

2024-06-21 15:08:16 1134

原创 在浏览器输入网址后会发生什么

输入网址后域名解析流程和渲染界面

2024-06-21 14:57:56 665

原创 Unity组件学习

Unity中的每个对象都会有一个唯一的Transform组件,Transform组件决定了该对象在Unity世界坐标中的位置,可通过更改Position属性的值移动对象的位置、更改Rotation属性的值旋转对象、更改Scale属性的值缩放对象。如果当前对象有父物体,是相对于父物体进行改变,没有父物体则默认相对于世界坐标改变。......

2022-08-29 13:05:54 1383 1

空空如也

空空如也

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

TA关注的人

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