![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
读书笔记
微笑丶人生
学无止境
展开
-
《设计模式与游戏完美开发》——TemplateMethod
定义:在一个方法中定义算法的流程,其中某些步骤由子类来完成。定义算法的流程:明确算法的每一个步骤,这个步骤可以是一个方法调用,并且都写在父类中思考:为什么某些步骤需要由子类来实现?在算法的流程中,某些步骤需要由执行时候的“上下文环境”来决定UML:具体步骤在子类中重写,声明一个父类对象,实例化为子类类型,调用父类模版方法,此时实现间接调用子类重写步骤的目的。优点...原创 2019-11-13 18:14:36 · 808 阅读 · 0 评论 -
《设计模式与游戏完美开发》——Strategy
定义:定义一组算法,并且封装每个算法,让他们可以彼此交换使用UML:思考:相当于把“解决问题的算法”抽象成“策略”的概念,当客户端需要调用这个算法的时候,对要使用的算法进行设置,然后调用其统一的接口,来实现调用不同解决算法的需求。同状态模式的区别:状态模式UML从类图上来看,很相似,但是不同的地方在于:状态模式中的每个状态之间是有对应的连接关系的,虽...原创 2019-11-12 16:44:27 · 387 阅读 · 0 评论 -
《设计模式与游戏完美开发》——Bridge
定义:将抽象与实现分离,使二者可以独立的变化桥接模式和传统的依赖于接口,不依赖于实现的模式(即通过继承的方式实现功能)有区别。通过继承的方式实现功能当俩个类组群自建,关系呈现出交叉组合的情况,采用继承的方式实现就会产生如下的情况,每个实现都需要新派生出一个子类来进行重写实现。通过桥接的方式实现功能通过桥接的方式来实现,则是先把俩个组群的顶层抽象出来,然后在顶层包含引...原创 2019-11-11 16:52:15 · 1517 阅读 · 0 评论 -
《游戏编程算法与技巧》读书笔记——摄像机
摄像机的类型固定摄像机:永远在一个位置固定的摄像机 第一人称摄像机: 跟随摄像机:固定距离,弹性距离,跟随过程中旋转 场景切换摄像机:从玩家的摄像机切换到剧情摄像机透视投影视场观看世界视野的广度及角度,称为视场,FOV视场过大会出现鱼眼效果,屏幕边缘变得弯曲。宽高比观看世界视口的宽度和高度的比率。摄像机的实现跟随摄像机弹性跟随摄像机旋转摄像机...原创 2019-08-08 15:22:22 · 157 阅读 · 0 评论 -
《游戏编程算法与技巧》读书笔记——游戏中的线性代数
游戏中的线性代数向量加法:减法:指向被减向量用法:(玩家到达目的地之间的向量)target = destination.position - player.position长度单位向量长度为1的向量正规化(非单位向量转化为单位向量)叉乘(标量相乘,运算结果为向量)标量*向量 可以改变向量方向点乘(运算结果为标量)...原创 2019-08-02 10:58:49 · 1407 阅读 · 0 评论 -
《游戏编程算法与技巧》读书笔记——3D图形
坐标系在3d渲染管线中,渲染3d模型到2d显示器,必须经历四个主要的坐标系空间模型坐标系模型坐标系是相对于模型自身的坐标系,原点一般在模型中心点世界坐标系坐标原点在世界的原点齐次坐标系当4D坐标应用在3d空间中时,他们被称为齐次坐标系。第四个分量为W当W = 0时,齐次坐标是3d向量当W = 1时,齐次坐标是3d点矩阵变换矩阵变换就是矩阵用某种...原创 2019-08-21 18:38:52 · 500 阅读 · 0 评论 -
《设计模式与游戏完美开发》——State(FSM)
定义:让一个对象的行为随着内部状态的改变而改变,而该对象也像是换了类一样UML:其他应用:原创 2019-09-16 17:26:07 · 652 阅读 · 0 评论 -
财务知识入门——《富爸爸,穷爸爸》
为钱而工作?让钱为自己工作!恐惧感:没钱的恐惧会刺激我们努力工作贪欲:当我们得到报酬时,贪欲又开始让我们去想所有钱能买到的东西别让感情代替了思想:感情,生活的压力推动了自己的行为,没有思考的行动是错误的方式恐惧和欲望造成贫穷和财务问题的主要原因是恐惧和无知,而非经济环境,政府,或者富人恐惧让人缺乏思考走上了被迫的道路欲望又让这条路越走越深,深陷其中无法自拔学...原创 2019-09-25 17:58:41 · 213 阅读 · 0 评论 -
《设计模式与游戏完美开发》——Facade
Facade:为子系统定义一组统一的接口,这个高级的接口会让子系统更容易被使用原创 2019-09-27 14:33:39 · 481 阅读 · 0 评论 -
《设计模式与游戏完美开发》——SingleTon
确认一个类只有一个对象,并且提供一个全局方法来获取这个对象单例模式的俩个重要特性是1.唯一的对象2.容易获取对象其中唯一对象特性可以通过类内提供计数来实现。容易获取的特性可以通过依赖注入的方式,把某个类对象设置成其他类的成员,可以实现容易获取对象的需求。当俩个需求都有的时候再考虑用单例模式...原创 2019-09-29 17:13:47 · 578 阅读 · 0 评论 -
《设计模式与游戏完美开发》——Mediator
用于解决内部子系统之间的沟通中介者模式:建立一个信息集中的中心,任何子系统要与他的子系统沟通时,都必须先把请求交给中央单位定义一个接口来封装一群对象的互动行为,中介者通过移除对象之间的引用,来减少他们之间的耦合,并且能改变他们之间的互动独立性相当于把原本多个类之间的联系变成了多个类和一个统一的类联系,然后通过调用这个统一的类来操作这些联系。...原创 2019-10-09 17:17:17 · 103 阅读 · 0 评论 -
《设计模式与游戏完美开发》——GameLoop
整个系统通过一个mono对象来驱动,实现统一管理,把需要update的模块和unity解耦原创 2019-10-10 17:14:07 · 772 阅读 · 0 评论 -
《大话数据结构》读书笔记——排序算法
第九章:排序内排序和外排序排序算法性能影响条件:时间性能:尽可能少的比较次数和移动次数 空间性能 算法本身的复杂性冒泡排序(n²)简单选择排序(n²)直接插入排序(n²)希尔排序(nlogn)堆排序(nlogn)堆是具有以下性质的完全二叉树:每个节点的值都要大于或者等于其左右孩子节点的值,称为大顶堆每个节点的值都小于或者等于其左右孩子节点的值,称为小顶堆...原创 2019-06-25 15:47:51 · 140 阅读 · 0 评论 -
代码大全读书笔记(第二部分)——防御式编程,伪代码编程过程
目录第八章:防御式编程第九章:伪代码编程过程9.1创建类和子程序的步骤概述创建一个类的步骤创建子程序的步骤9.2伪代码9.3通过伪代码编程过程创建子程序编写子程序代码检查代码9.4伪代码编程过程的替代方案第八章:防御式编程//TODO第九章:伪代码编程过程9.1创建类和子程序的步骤概述类的创建是一个迭代的过程,先对一个类做总体设计...原创 2019-04-12 13:55:14 · 131 阅读 · 0 评论 -
代码大全读书笔记(第二部分)——创建高质量的代码
目录第五章:软件构建中的设计设计是一个险恶的问题关键的设计概念理想的设计应有的特征设计的层次第一层:软件系统第二层:子系统第三层:类第四层:分解成子程序第五层:子程序内部的设计设计的方法找出现实世界中的对象形成一致的抽象封装实现细节当继承能简化设计时就用继承信息隐藏找出容易改变的区域保持松散耦合耦合的种类:常用设...原创 2019-04-03 10:43:48 · 240 阅读 · 0 评论 -
代码大全读书笔记(第二部分)——可以工作的类、高质量的子程序
目录第六章:可以工作的类6.1类的基础:抽象数据类型6.2良好的类接口如何设计类接口良好的封装6.3有关设计和实现的问题包含关系(有一个...的关系)继承关系(是一个...的关系)成员函数和数据成员构造函数6.4创建类的原因第七章:高质量的子程序7.1 创建子程序的理由过于简单的子程序存在的作用7.2在子程序层上设计应该有的内...原创 2019-04-09 16:59:34 · 199 阅读 · 0 评论 -
代码大全读书笔记(第三部分)——变量
第十章:使用变量的一般事项此处的变量泛指对象和内置数据类型10.1数据认知10.2轻松掌握变量定义10.3变量初始化原则在声明变量的时候初始化 在靠近变量第一次使用的地方初始化 注意使用final或者const,防止对常量进行赋值 在类的构造函数里初始化该类的数据成员 检查是否需要重新初始化 一次性初始化具名变量10.4作用域作用域或者可见性指的是变量在程序内...原创 2019-04-16 13:44:16 · 159 阅读 · 0 评论 -
代码大全读书笔记(第三部分)——基本数据类型
第十二章:基本数据类型12.1 数值概论避免使用神秘数 程序主体中仅能出现的文字量就是0和1,任何其他文字量都应该换成更有描述性的表示 预防除0 使类型转换变得明显 避免混合类型的比较 注意编译器的警告12.2 整数检查整数的除法, 10*(7/10) ≠ (10*7)/10 检查整数溢出 检查中间结果溢出12.3 浮点数float 有效数字8位 占用...原创 2019-04-22 10:51:56 · 147 阅读 · 0 评论 -
代码大全读书笔记(第五部分)——代码改善
第二十章: 软件质量概述20.1 软件质量的特性外在特性:正确性 可用性 效率 可靠性 完整性:包括输入数据验证 适应性 精确 健壮内在特性:可维护性 灵活性 可移植性 可重用 可读性 可测试性 可理解性20.2 改善软件质量的技术明确软件质量的目标 明确定义质量保证工作,把保证程序的质量放到第一位 测试策略? 非正式的技术复查:代码都过一遍...原创 2019-04-26 11:43:23 · 202 阅读 · 0 评论 -
代码大全读书笔记(第四部分)——语句
目录第十四章:组织直线型代码14.1 必须有明确顺序的语句14.2 顺序无关的语句第十五章:使用条件语句15.1 if语句简单if - then 语句if - then - else语句串15.2 case语句为case选择最有效的排列顺序使用case注意事项第十六章:控制循环16.1选择循环的种类什么时候使用while循环什么时候用带退出的...原创 2019-04-23 10:12:30 · 182 阅读 · 0 评论 -
《大话数据结构》读书笔记——绪论
第一章:数据结构绪论数据结构是一门研究非数值计算的程序设计问题中的操作对象,以及它们之间的关系和操作等相关问题的学科数据:是描述客观事物的符号,是计算机中可以操作的对象,是能被计算机识别,并输入给计算机处理的符号集合。数据元素:组成数据的有一定意义的基本单位数据结构:是相互之间存在一种或者多种特定关系的数据元素集合数据结构分类逻辑结构集合结构:关系就是同...原创 2019-05-06 10:11:20 · 170 阅读 · 0 评论 -
《大话数据结构》读书笔记——线性数据结构
目录第三章:线性表顺序存储结构(数组)链式存储结构单链表静态链表循环链表双向链表第四章:栈和队列栈(类比手枪弹夹)栈的应用1——递归栈的应用2——公式解析队列(类比排队)第五章:字符串朴素模式匹配算法KMP模式匹配算法第三章:线性表0个或多个数据元素的有限序列顺序存储结构(数组)用一段地址连续的存储单元依次存储线性表...原创 2019-05-06 14:35:38 · 511 阅读 · 0 评论 -
《大话数据结构》读书笔记——树形结构
目录第六章:树结点分类结点关系其他概念树的存储结构双亲表示法孩子表示法孩子兄弟表示法二叉树特殊二叉树二叉树的性质二叉树的存储结构遍历二叉树二叉树的建立线索二叉树树,森,二叉树的转换树转换为二叉树森转换为二叉树二叉树转换为树二叉树转换为森树和森的遍历(一般转换成二叉树,然后用二叉树的遍历方式进行遍历)...原创 2019-05-07 13:30:44 · 614 阅读 · 0 评论 -
《大话数据结构》读书笔记——查找算法
第八章:查找查找就是根据给定的某个值,在查找表中确定一个关键字等于给定值的数据元素查找概论查找表:同一元素数据构成的集合关键字:数据元素中某个数据项的值分类静态查找表 动态查找表:在查找过程中同时插入查找表中不存在的数据元素,或者从数据表中删除已经存在的某个数据元素为了提高查找效率,需要专门为查找操作设置数据结构,这种面向查找操作的数据结构称为查找结构。...原创 2019-05-20 15:35:35 · 179 阅读 · 0 评论 -
《大话数据结构》读书笔记——图结构
第七章:图基本概念:图是由顶点的有穷非空集合和顶点之间边的集合组成的,通常表示为:G(V,E),其中,G表示一个图,V是G图中顶点的集合,E是图G中边的集合概念区别:线性表中数据叫元素,树形结构中数据叫结点,图中数据叫顶点。 线性表和树种都可以没有数据,但是图中不行必须有 图中任意俩点之间都可能有关系,顶点之间的逻辑关系用边表示,边集可以是空定义:无向边:顶点Vi到...原创 2019-05-09 13:54:07 · 283 阅读 · 0 评论 -
Unity Documentation 笔记 —— 导航和寻路
Unity导航系统首先要考虑的俩个问题如何根据地图信息来寻找目标位置 如何移动到目标位置原创 2019-06-19 15:00:22 · 1623 阅读 · 0 评论 -
代码大全读书笔记(第一部分)——打好基础
第一章:欢迎进入软件构建的世界第二章:用隐喻来更充分地理解软件开发第三章:三思而后行,前期准备这个系统应该做什么?他该如何做到这些?第四章:关键的构建决策...原创 2019-04-02 11:42:07 · 157 阅读 · 0 评论