
C#
文章平均质量分 80
晴窗v
这个作者很懒,什么都没留下…
展开
-
【Unity连载】斗兽棋-棋类游戏开发演示(2)
四.游戏操作与指令如同养育一个婴儿,父母总会一步步引领孩子成长,从蹒跚学步到来去如风;我们对游戏功能的开发,也无疑应当从走出第一步棋开始。现在,我们已经构建出了棋盘、棋子等基本的游戏逻辑对象;那么是时候编写功能,让棋子在棋盘上移动了。4.1 选中棋子准备开始下棋!首先,第一个问题出现:棋怎么下?如果你在QQ游戏、联众等在线棋牌平台玩过象棋、军棋等棋类,或者玩过《文明6》等回合制战棋游戏,那么对于棋类游戏的基本操作方式一定不会陌生。假设轮到玩家A走棋——A点击一个棋子,选中这个棋子;原创 2021-09-06 12:35:11 · 2263 阅读 · 2 评论 -
【Unity连载】斗兽棋—棋类游戏开发演示(1)
“黄梅时节家家雨,青草池塘处处蛙。有约不来过夜半,闲敲棋子落灯花。”“象棋终日乐悠悠,苦被严亲一旦丢。兵卒坠河皆不救,将军溺水一齐休。马行千里随波去,象入三川逐浪游。炮响一声天地震,忽然惊起卧龙愁。”棋类游戏是最早的“电子游戏”。从开发者的视角来说,虽然棋类游戏的玩法是相对简单的回合制,内容也远没有电子游戏那样复杂;但它们的玩法中的经典元素,却非常适合于游戏开发过程中的入门级和中级训练。具体到使用Unity开发而言,棋类游戏主要依赖基本的编程思想和简易算法来实现,而非依赖于Unity提供的物理碰撞、原创 2021-02-28 13:52:37 · 5130 阅读 · 2 评论 -
【Vic的小课堂】Unity实现游戏功能(1)—矩形框选
·略带吐槽的序言Unity是一款功能强大且运用广泛的引擎,但它也存在着一些颇受诟病的缺点;对于纯正的游戏热爱者而言,Unity整个引擎的功能组织较为“白板”:它看上去很像是复杂化的代码编辑器,一切内容等待你的书写,而你很难认为它针对某一类游戏的典型需求进行过优化。或者说,Unity不易直接实现任何一种令人惊喜或熟悉的游戏功能。(相比之下,虚幻引擎有着广受喜爱的蓝图机制,可以为开发者实现常见游戏功能提供很大便利)简单解释一下前面是什么意思。无论我们大家的编程基础、代码实力如何,每当构思并试图创作原创 2020-08-29 05:23:29 · 7350 阅读 · 8 评论 -
Unity数据读写与存档(2)Json:成为神笔马良
在上一篇我们知道,通过引入适当的第三方库并编写代码,就可以在Unity内,从Excel表格中读取一些数据。配置表的存在,的确可以帮助开发团队中没有编程基础的小伙伴管理游戏数据,或者将游戏的策划数据较为方便地批量转移到Unity内;不过,使用Excel来管理游戏数据,功能还是较为有限,而且使用起来不方便。Excel表格只适合存储简单的文本和数字类数据,对于数组、列表等复杂数据则完全无能为力;此外,读取配置表时必须手动编写非常繁琐的读表逻辑,将表格内各单元格的数据赋值到代码内部的各种变量上。更可怕的是,原创 2020-07-06 11:47:37 · 1091 阅读 · 0 评论 -
【学习笔记】C# & Unity 异常处理(上)
异常处理是C#提供的一整套功能,同时也是游戏逻辑的编程中非常重要的概念和技能;在初学编程时,无论学习哪种语言,老师都会教我们识别异常,并且修改代码来消除异常。例如:int a = 8 / 0;这是一个非常显而易见的bug——程序中出现了"除以0"的问题。事实上,编译器根本就不会容许这种低级错误的出现;在你按下Play键开始编译之前,编译器就会用红色下划线标注这个出错的语句,并提示你修改。那么,来看下一个例子:string[] texts = new string[2];text原创 2020-06-10 15:36:35 · 1242 阅读 · 1 评论 -
C#学习笔记(第3期):事件与事件驱动
C#——事件与event关键字1.事件和事件驱动“事件”不是C#中的功能,而是源于一种程序架构:事件驱动。事件驱动指的是这样一种程序模式:【当某种事件发生时,自动触发并执行该事件的响应程序,而不需要一直观测并判断该事件是否发生。】为什么程序中需要引入事件驱动模式?2.实例:采用事件驱动的好处来看一个例子。假设小明正使用一个水壶来烧水,他需要知道水何时烧开,并在水烧开后及时关火。要实现这一需求,有两种不同的策略:第一种策略:小明揭开壶盖,观察壶中的水是否沸腾。不断重复这一动作原创 2020-06-08 23:00:28 · 2142 阅读 · 3 评论 -
C#学习笔记(第2期):委托-delegate
委托: delegate1.什么是委托delegate(委托)是一种特殊的类,用来定义一群【具有共同特征】的方法;这些方法作用于相同类型和顺序的参数, 但不确定具体的执行方式;对于每一个委托的实例,你可以将具体的方法挂载(+=)到委托实例上,使该委托实例获得具体的执行方式。哈,我猜,你很可能完全听不懂前面我说了什么。事实上,绝大多数相关资料中对委托的解释,比我刚才说的还要晦涩难懂。所以——来听我讲故事吧!【将故事中的各段代码拼接起来,即可编译执行。】2.讲故事时间到!某村庄原创 2020-06-08 13:32:52 · 377 阅读 · 0 评论 -
C#学习笔记(第1期):接口-interface
接口:interface1.什么是接口interface(接口)是一种引用类型,接口的内部规定了若干个未实现的函数成员。接口通常被当作“基类”一样使用,可以被其它类所继承。【接口】用于反映一群【“大同小异”的类】所具有的共同特性;对于这些类而言,接口内部的函数成员,反映了这群相似的个体都能够执行的共同行为。一旦一群不同的类继承了一个相同的接口,它们就必须实现接口中规定的所有共同行为;但是,每个类都能够以【个性化】的方式来执行这些行为。上面的定义有点难懂,到底是什么意思呢?举个例子看一下原创 2020-06-08 11:50:37 · 389 阅读 · 0 评论