07 2018 档案
摘要:接着上一节:4、AI蛇的设计这里AI蛇大部分代码都可以参照主角的代码,我这里的实现其实还可以进行改进。基本原理就是蛇创建之后给蛇一个随机方向的单位向量,AI蛇的蛇头添加一个比蛇头大两三倍大小的碰撞检测盒,效果如图:当蛇头的碰撞检测盒子与墙壁或者其他蛇的身体碰撞时,给蛇一个反向...
阅读全文
摘要:游戏主界面: 由于这个场景比较复杂,需要分几个部分实现:1、游戏背景首先我们的游戏场景上包括了一个大的背景图片,之外再包围一个红色的区域。中间的区域才是可活动的区域,周围通过碰撞检测盒来检测是否有蛇撞到了墙壁。2、食物生成食物生成通过一个单例脚本来实现,创建一个食物的内存池(...
阅读全文
摘要:游戏商店界面:实际的效果图如下: 要实现这个滑动,首先我们需要,一个内容显示区域,一个内容滚动区域,如下图:其中ItemContent挂载的组件如下:红框标注的地方是右方的滑动块。然后ItemScrollRect挂载的组件有:核心是网格布局组,其孩子结点都会自动根据大小进行排...
阅读全文
摘要:游戏规则界面:从界面上可以看出,一共有三个按钮,两个切换按钮和一个退出按钮。一共三张规则图片Sprite,我们通过设置其是否为Active来控制显示,其控制脚本代码如下:using System.Collections;using System.Collections.Gen...
阅读全文
摘要:前言:刚学unity没多久吧(大概1个月多点),这是我自己做的除官网之外的第一个游戏demo,中间存在很多不足的地方,但是还是希望可以给需要的人提供一些思路和帮助,有问题的小伙伴可以找我一起探讨一起学习。游戏的资源和脚本都放在我的github上了,需要的小伙伴也可以去这里cl...
阅读全文
摘要:委托在C++中可以利用“函数指针”将对方法的引用作为实参传递给另一个方法,而C#中可以利用委托提供相同的功能。委托-内部机制但是委托实际上是一个特殊的类。委托必须直接或间接的派生自System.Delegate。实际的委托类型总是派生自System.MulticastDele...
阅读全文
摘要:规则:在“运行时”遇到虚方法时,对象会调用虚成员派生得最远的、重写的实现。 如果是用new修饰符实现的方法,它会在基类面前隐藏派生类重新声明的成员,这时候会找到使用new修饰符的成员之前的成员,然后调用它。 一定要显式地使用override关键字来重写方法,如果没有使用ov...
阅读全文
摘要:协变与逆变的概念假如两个类型X和Y具有特殊关系,X类型的每个值都能转换成Y类型。我们将I向I的转换称为协变转换。反之我们将I向I的转换称为逆变转换。简单的举个例子:List s...
阅读全文