U3D课程学习交流 加入小组

85个成员 32个话题 创建时间:2015-06-03

我在做“消灭星星”这个游戏,遍历相同颜色也完成了,在向下移动过程遇到了困难。

发表于2015-07-09 1479次查看

生成规则和《宝石迷阵》一样,在向下移动和,向左合并阶段遇到了困难。 我的想法是从每一列的最上方遍历,遇到一个非空的且下面为空的,就把非空以上的向下移动。

void Move(){ for (int i=0; i<10; i++) { ArrayList ColumnList = starList [i] as ArrayList; for (int j=9; j>=1; j--) { Star a = GetStar (i, j); Star b = GetStar (i, j - 1); if (a != null && b == null) { for (int x=j; x<10; x++) { Star star = (Star)ColumnList [x]; //Debug.Log ("移动前: " + star.columnIndex + " " + star.rowIndex); star.rowIndex = star.rowIndex - 1; SetStar (star.columnIndex, star.rowIndex, star); SetStar (star.columnIndex, star.rowIndex+1, nullStar); star.UpdatePosition (star.columnIndex, star.rowIndex); //nullStar.UpdatePosition (star.columnIndex, star.rowIndex+1); //Debug.Log ("移动后: " + star.columnIndex + " " + star.rowIndex); } //Exchange(a,b); } } } }

&完全不知道怎么玩转这个ArrayList;

1回复
发表回复
你还没有登录,请先登录注册