摘要: 前言 终于又有空余时间来整理了,这里整理出GAMES101-Lecture-05到07的内容。如有错误,欢迎斧正。 GAMES101教程视频传送门 记录 光栅化 光栅化是把顶点数据(一般为三角形)转化为片元显示出来的过程。 通俗地讲,就是把若干小三角形通过屏幕像素画出来的过程。 点与三角形的位置关系 阅读全文
posted @ 2022-06-04 16:24 AshScops 阅读(70) 评论(0) 推荐(1) 编辑
摘要: 前言 早先接触了一些计算机图形学的知识,记了一些重要的知识点,但由于课业繁忙,好多课内实验报告要写,搁置了一段时间,现在重新整理出来,方便自己复习。如有错误,欢迎斧正。 这里先整理出GAMES101-Lecture-01到05的内容。 GAMES101教程视频传送门 记录 前面几节课讲的内容大概是将 阅读全文
posted @ 2022-04-25 12:31 AshScops 阅读(142) 评论(0) 推荐(2) 编辑
摘要: 引子 为什么需要命令模式? 开发时,我们可能遇到某些特殊的需求,比如对某些步骤进行记录、撤销等。这种情况下,我们可以使用命令模式,将请求封装成对象,实现"行为请求者"与"行为实现者"之间的松耦合。 什么是命令模式 将一个请求封装为一个对象(命令),使发出命令与执行命令的类分开。 实现 定义一个命令的 阅读全文
posted @ 2022-04-06 20:39 AshScops 阅读(63) 评论(0) 推荐(0) 编辑
摘要: 引子 为什么需要享元模式? 小明在实际开发中,遇到一个需要大量使用某种对象的需求。小明封装了一个函数方法,每调用一次,就会不断地创建新的对象。但是这样消耗了大量内存。 显然,我们迫切地需要一种设计模式,使得对象可以被重复利用,以避免内存的过度消耗。 实现 对象池是非常典型的享元模式案例。网上的具体实 阅读全文
posted @ 2022-04-05 11:10 AshScops 阅读(103) 评论(0) 推荐(0) 编辑
摘要: 什么是观察者模式 观察者模式适用于一对多的应用场景。 有若干观察者对象,他们依赖于目标对象。当目标对象执行某操作时,所有观察者对象都会得到通知并自动执行相应操作。 举个例子:在老头环中,只要玩家喝血瓶,那么周围的敌人就会捕获到这个动作,并立刻发动进攻,让你喝多少吐多少。 在上述例子里,玩家就是“目标 阅读全文
posted @ 2022-04-04 20:34 AshScops 阅读(749) 评论(0) 推荐(1) 编辑
摘要: 前言 开发时,难免会遇到对象需要在某几个状态之间不停切换的问题,尤其是敌人对象。对于类似的问题,使用FSM有限状态机是一个不错的解决方案。今天特地抽空来总结一下FSM的相关内容。 引子 为什么要用FSM有限状态机? 小明在写敌人类时,使用了大量的if-else来控制敌人的行动,但随着敌人的行动越来越 阅读全文
posted @ 2022-04-03 21:08 AshScops 阅读(177) 评论(0) 推荐(0) 编辑
摘要: 什么是单例模式 一个类只有一个实例,并且该实例能在全局被访问。 在游戏中,单例作为全局对象,只会被实例化一次。这有利于统一管理某些功能。 举例 游戏的UI界面可以用单例来管理,正如下面这个例子: using UnityEngine; public class UIManager : MonoBeha 阅读全文
posted @ 2021-06-14 15:09 AshScops 阅读(204) 评论(0) 推荐(0) 编辑
摘要: 前言 最近在写敌人的行动逻辑,其中涉及到“判定玩家是否在攻击范围内”的问题,现在学习这两种方法,以期解决该问题。 API对Physics2D.CircleCast的(部分)说明 public static RaycastHit2D CircleCast(Vector2 origin, float r 阅读全文
posted @ 2021-06-03 11:44 AshScops 阅读(2121) 评论(1) 推荐(0) 编辑
摘要: 前言 找到了A* Pathfinding这款寻路插件,无需写代码就能实现简单的寻路。 A* Pathfinding下载传送门 对于2D俯视角寻路、2D横版中的飞行敌人寻路,参看这一篇文章,用的是grid graph。然而现在的需求是“敌人在地面和多个浮空平台之间寻路”。 查阅Pathfinding 阅读全文
posted @ 2021-06-01 21:57 AshScops 阅读(1148) 评论(0) 推荐(1) 编辑
摘要: 目标 当美术素材较少时,我们可以基于对象池来实现残影拖尾效果,增强游戏的画面表现。 基本思路 步骤1. 创建一个2DSprite,编辑该对象的Image,使其为我们所需要的拖尾图片。 步骤2. 写一个方法,使该对象Image-Color中的alpha通道值在指定时间内逐渐变小,即图片逐渐变透明。 步 阅读全文
posted @ 2021-05-25 19:16 AshScops 阅读(786) 评论(3) 推荐(0) 编辑