예제 #1
0
파일: Cube.cs 프로젝트: mzsc/Assets
 void FixedUpdate()
 {
     //游戏非暂停并且游戏非结束
     if ((!BackScript.Pause) && (!BackScript.GameOver))
     {
         //MovingDown ()返回真,可以下落
         if (MovingDown())
         {
             //下落一个单位
             transform.position = new Vector3(transform.position.x, transform.position.y - 1f, transform.position.z);
         }
         else
         {
             ListCheckX.Clear();//清空列表
             //遍历当前物体的子物体
             foreach (Transform Child in transform)
             {
                 int BackX = Mathf.RoundToInt(cHigh - Child.position.y);    //将物理纵坐标转换为背景数组X坐标
                 int BackY = Mathf.RoundToInt(cWide + Child.position.x);    //将物理横坐标转换为背景数组Y坐标
                 BackScript.Backs[BackX, BackY] = 1;                        //将相应位置的背景数组赋1
                 Child.name = "Cube" + BackX.ToString() + BackY.ToString(); //以背景数组角标重命名该小方块
                 //检查是否已存在该元素
                 if (!ListCheckX.Contains(BackX))
                 {
                     ListCheckX.Add(BackX);//将要检查的行加入列表
                 }
             }
             transform.DetachChildren();        //与子物体分离
             BackScript.CheckBacks(ListCheckX); //调用背景检查函数
             BackScript.AddCube();              //调用增加方块函数
             DestroyImmediate(gameObject);      //销毁自己
         }
     }
 }