예제 #1
0
 //实现回调接口,将用过的飞碟和飞的动作加入到free列表中
 public void SSActionEvent(SSAction source, SSActionEventType events = SSActionEventType.Competeted,
                           int intParam = 0, string strParam = null, UnityEngine.Object objectParam = null)
 {
     if (source is CCFlyAction)
     {
         DiskNumber--;
         DiskFactory df = Singleton <DiskFactory> .Instance;
         df.FreeDisk(source.gameobject);
         FreeSSAction(source);
     }
 }
예제 #2
0
        private void NextRound()
        {
            DiskFactory df = Singleton <DiskFactory> .Instance;

            for (int i = 0; i < diskNumber; i++)
            {
                diskQueue.Enqueue(df.getDisk(currentRound));
            }

            actionManager.StartThrow(diskQueue);
        }
예제 #3
0
        void update()
        {
            if (actionManager.DiskNumber == 0 && gameState == GameState.RUNNING)
            {
                gameState = GameState.ROUND_FINISH;
            }

            if (actionManager.DiskNumber == 0 && gameState == GameState.ROUND_START)
            {
                currentRound = currentRound + 1;
                //NextRound下一个回合
                DiskFactory df = Singleton <DiskFactory> .Instance;
                //取出10个飞碟到列表中
                for (int i = 0; i < diskNumber; i++)
                {
                    diskQueue.Enqueue(df.getDisk(currentRound));
                }
                //开始仍飞碟,初始化动作管理器的飞碟数
                actionManager.StartThrow(diskQueue);
                actionManager.DiskNumber = 10;
                gameState = GameState.RUNNING;
            }
            if (time > 1)
            {
                //ThrowDisk仍飞碟
                if (diskQueue.Count != 0)
                {
                    GameObject disk = diskQueue.Dequeue();

                    //随机确定飞碟出现的位置
                    Vector3 position = new Vector3(0, 0, 0);
                    float   y        = UnityEngine.Random.Range(0f, 4f);
                    position = new Vector3(-disk.GetComponent <DiskData>().direction.x * 7, y, 0);
                    disk.transform.position = position;

                    disk.SetActive(true);
                }
                time = 0;
            }
            else
            {
                time += Time.deltaTime;
            }
        }