unity UGUI 2048 控制移动
来源:互联网 发布:中国人均粮食产量 知乎 编辑:程序博客网 时间:2024/05/29 17:18
以向上移动为例
#region ToTop for (int x = 0; x < 4; x++) { int emptyCount = 0; Num preNum = null; for (int y = 0; y < 4; y++) { if (NumIndexArray[x][y] == 0) { emptyCount++; } else { //初始Num if (preNum == null) { preNum = NumAssemblyArray[x][y]; //当查找到有数字的数组位置时,将其Num赋值给preNum } //合并 //当初是preNum有值且和下一个Num相同时,进行合并 else if (NumAssemblyArray[x][y].NumIndex == preNum.NumIndex) { //每有一个空位置,便增加1,用来计算移动的位置 emptyCount++; //启动删除标记 //合并后需要将原来的两个Num删除 NumAssemblyArray[x][y].isDestory = true; preNum.isDestory = true; //将响应表格中的引用清除 preNum = null; //延时并创建一个num //CreateNum(x + emptyCount, y, NumAssemblyArray[x][y].NumIndex * 2);//延时创建,保证原来的已经被删掉了 StartCoroutine(WaitAndCreateNum(x, y - emptyCount, NumAssemblyArray[x][y].NumIndex * 2, NumAssemblyArray[x][y].moveTime)); } else { preNum = NumAssemblyArray[x][y]; } //移动 int newX = NumAssemblyArray[x][y].InitX; int newY = NumAssemblyArray[x][y].InitY - emptyCount; NumAssemblyArray[x][y].UpdatePos(newX,newY); if (newX != x || newY != y) { //确定移动后的新位置,无论是否有合并都会运行 NumAssemblyArray[newX][newY] = NumAssemblyArray[x][y]; NumIndexArray[newX][newY] = NumIndexArray[x][y]; //将原位置的Num删除,即使还没有移动结束,先删除。 NumAssemblyArray[x][y] = null; NumIndexArray[x][y] = 0; } } } } //在指定的一侧创建一个新的Num CreateNum(TouchDir.Top); #endregion
根据不同的情况,选择一个空的位置
#region moveToTop int emptyNumCount = 0; int y = 3; for (int x = 0; x < 4; x++) { if (NumIndexArray[x][y] == 0) { emptyNumCount++; } } if (emptyNumCount != 0) { int randomIndex = Random.Range(1, emptyNumCount + 1); int count = 0; for (int x = 0; x < 4; x++) { if (NumIndexArray[x][y] == 0) { count++; if (count == randomIndex) { newX = x; newY = y; } } } } #endregion
等待并生成新的Num
通过携程实现
通过StartCoroutine(对象)方法启动。
#region 等待并且在合并时生成新的Num-WaitAndCreateNum(int x,int y,int index,float WaitTime) IEnumerator WaitAndCreateNum(int x,int y,int index,float WaitTime) { WaitTime -= 0.2f; yield return new WaitForSeconds(WaitTime); CreateNum(x, y, index); } #endregion
[下载源码](http://download.csdn.net/detail/tianyao9hen/9870850)
阅读全文
0 0
- unity UGUI 2048 控制移动
- Unity UGUI 2048 NumControler
- 【Unity&UGUI】代码控制 text文本
- unity 键盘控制移动
- Unity控制移动、旋转
- Unity 鼠标控制角色移动
- Unity简单的移动控制。
- unity 控制对象移动、旋转
- unity 控制移动的方法
- unity键盘控制人物移动
- Unity UGUI
- 【Unity&UGUI】
- unity关于代码控制ugui显示隐藏的一些心得
- 【Unity&UGUI】代码控制Toggle,为什么不能使用Toggle
- Unity 通过点击屏幕控制人物移动。
- unity 控制物体移动和旋转
- Unity 通过点击屏幕控制人物移动
- unity中简单的角色移动控制
- urllib2
- Spring中的IOC
- 599. Minimum Index Sum of Two Lists
- 安卓开发菜单挡住标题栏解决办法
- leetcode | Path Sum II
- unity UGUI 2048 控制移动
- 队列求迷宫问题
- jdk之BitSet位运算解析
- 嵌入式实训总结
- bzoj1803: Spoj1487 Query on a tree III
- mybatis配置
- JavaSE重新学习
- 13.折半法(二分法)判断该数是否存在于数组
- PyQt5+python3+pycharm开发环境配置