2017年9月24笔记

来源:互联网 发布:假面骑士空我 知乎 编辑:程序博客网 时间:2024/06/06 19:37

前言

我发现我的笔记经常会丢失,所以打算将每天的笔记汇总在一起,一是来可以复习今天学习到的内容,二是方便以后的查找,等等要实践下手速训练,将今天的代码重新再过一遍,第一次的代码可以短点,或者时间短点。

开发2DRoguelike笔记

  1. Food应该放在GameManage中,而不是在player类中,因为放在player中,容易造成player过于臃肿,不过有些情况应该也是可以。例如血条,这里主要是因为Food不仅是血条,也是环境中的东西。

  2. 只有一个方法使用到static,该方法调用的所有的方法都必须使用static

  3. 检测碰撞时,需要关闭自身的collider,要不会检测到自己的物体先。
    代码

collider.enabled = false;RaycastHit2D hitObj = Physics2D.Lineast(Vector2.lerp(targetPosition,targetPosition + new Vector2(h,v));

123
4. 在Unity中,如果使用了public int i;在类内部设置的值的优先度没有在Inspector的界面高。//
经常犯错

5.[HideInInspector] 隐藏public变量,不显示在Inspector上

6.动画,animator.setTrigger(“name”) ,应该在动画状态机中设置trigger而不是设置trigger

7.C#方法中没有静态变量


小idea

我可以将之前很酷的分形添加到我之前女主拯救男主角的游戏


快排理解

1.一路快排

当程序进行到一部分的时候的时候,一图胜万言
这里写图片描述
上图一个错误,应该是a[left+1…j]为了让我印象更加深刻我就不改了。
当a[i] >= v 时, i++。
当a[j]

2.二路快排

比一路快排的优点,因为当数组有很多重复的数字的时候,一路快排将数组分成的部分不是均匀的两部分部分,这时通过该过程可以将数组分成两个数组数量差不多。
当程序进行到一部分的时候,一图胜万言
这里写图片描述
程序从左开始找到第一个不满足小于v的数,如果满足i++,找到即为a[i]
程序从右边开始找到第一个不满足大于v的数,如果满足rj–,找到即为a[rj]
然后判断程序是否结束(i

3.三路过程

因为二路时,重复的v肯定应该排中间,这样就不需要重新排中间的数,直接将v的数字放到合适的位置,剩下的部分在做快排即可
当程序进行到一部分的时候,一图胜万言。
这里写图片描述
当a[i] == v , i++
当a[i]>v,swap(a[i],a[rj]);i不变,rj–
当a[i]小于v,swap(a[lj+1],a[i])
最后
swap(a[left],a[lj]);