Example #1
0
 public void Remove(GameObject go)
 {
     if (go == null)
     {
         Debug.Log("Remove null");
         return;
     }
     else
     {
         ClickBox box = go.GetComponent <ClickBox>();
         box.OverAnimPlay();
         ClickBox.BoxType type = box.type;
         //处理点击事件a b
         if (type == ClickBox.BoxType.YellowBox || type == ClickBox.BoxType.BlueBox)
         {
             MakeEventAB();
             blockCount[box.blockIndex]--;
         }
         Remove(go, type);
         clickCount++;
     }
 }
Example #2
0
    public void Remove(GameObject go, ClickBox.BoxType type)
    {
        ClickBox box = go.GetComponent <ClickBox>();

        go.SetActive(false);
        switch (type)
        {
        case ClickBox.BoxType.YellowBox:
            yellowBoxCount--;
            attackBoxCount--;
            _yellowObjects.Remove(go);
            break;

        case ClickBox.BoxType.RedBox:
            redBoxCount--;
            moveBoxCount--;
            _redObjects.Remove(go);
            break;

        case ClickBox.BoxType.BombBox:
            bombBoxCount--;
            moveBoxCount--;
            _bombObjects.Remove(go);
            if (bombBoxCount < 0)
            {
                bombBoxCount = 0;
            }
            break;

        case ClickBox.BoxType.BlueBox:
            blueBoxCount--;
            attackBoxCount--;
            _blueObjects.Remove(go);
            break;

        case ClickBox.BoxType.ComboBox:
            comboBoxCount--;
            _comboObjects.Remove(go);
            break;

        case ClickBox.BoxType.BossBox:
            bossBoxCount--;
            moveBoxCount--;
            _bossObjects.Remove(go);
            break;

        case ClickBox.BoxType.FastBox:
            fastBoxCount--;
            moveBoxCount--;
            _fastObjects.Remove(go);
            break;

        case ClickBox.BoxType.GroundBox:
            groundBoxCount--;
            moveBoxCount--;
            _groundObjects.Remove(go);
            break;
        }
        if (moveBoxCount < 0)
        {
            moveBoxCount = 0;
        }
        Destroy(go);
    }
Example #3
0
    //移动块
    public void Spawn(GameObject prefab, float initx, ClickBox.BoxType type, float minSpeed, float width,
                      bool isAcc = false, int click = 0)
    {
        // if (!hasMove) return;
        float y;

        Vector3 pos = transform.position;

        y = centerY;

        GameObject go    = Instantiate(prefab) as GameObject;
        int        index = 0;
        int        layer = 0;

        switch (type)
        {
        case ClickBox.BoxType.RedBox:
            redBoxIndex++;
            index = redBoxIndex;
            moveBoxCount++;
            redBoxCount++;
            layer = 2000;
            _redObjects.Add(go);
            break;

        case ClickBox.BoxType.GroundBox:
            groundBoxIndex++;
            index = groundBoxIndex;
            moveBoxCount++;
            groundBoxCount++;
            layer = 3000;
            _groundObjects.Add(go);
            break;

        case ClickBox.BoxType.BombBox:
            bombBoxIndex++;
            index = bombBoxIndex;
            moveBoxCount++;
            bombBoxCount++;
            layer = 4000;
            _bombObjects.Add(go);
            break;

        case ClickBox.BoxType.FastBox:
            fastBoxIndex++;
            index = fastBoxIndex;
            moveBoxCount++;
            fastBoxCount++;
            layer = 5000;
            _fastObjects.Add(go);
            break;

        case ClickBox.BoxType.BossBox:
            bossBoxIndex++;
            index = bossBoxIndex;
            moveBoxCount++;
            bossBoxCount++;
            layer = 6000;
            _bossObjects.Add(go);
            break;
        }
        ClickMoveBox box = go.GetComponent <ClickMoveBox>();

        go.transform.parent     = this.transform;
        go.transform.localScale = new Vector3(1, 1, 1);
        //控制在横条内生成
        float half = go.GetComponent <Collider2D>().bounds.size.x / 2;
        float temp = initx - half;

        box.offsetX = half;
        box.Init(half, layer + index);
        box.InitMoveBox(minSpeed, minSpeed + 1, isAcc, click);
        go.transform.position = new Vector3(temp, y, 0);
    }
Example #4
0
    //固定块
    public void Spawn(GameObject prefab, ClickBox.BoxType type, float width)
    {
        // if(!hasStatic) return;

        float min;
        float max;

        float x;
        float y;

        Vector3 pos = transform.position;

        min = BattleManager.Instance.pop.leftPos.transform.position.x;
        max = BattleManager.Instance.pop.rightPos.transform.position.x;
        x   = Mathf.Lerp(min, max, UnityEngine.Random.value);
        y   = centerY;


        GameObject go    = Instantiate(prefab) as GameObject;
        int        index = 0;
        int        layer = 0;

        switch (type)
        {
        case ClickBox.BoxType.BlueBox:
            blueBoxIndex++;
            index = blueBoxIndex;
            blueBoxCount++;
            attackBoxCount++;
            layer = 100;
            _blueObjects.Add(go);
            break;

        case ClickBox.BoxType.YellowBox:
            yellowBoxIndex++;
            index = yellowBoxIndex;
            yellowBoxCount++;
            attackBoxCount++;
            layer = 1000;
            _yellowObjects.Add(go);
            break;

        case ClickBox.BoxType.ComboBox:
            comboBoxIndex += 3;
            index          = comboBoxIndex;
            comboBoxCount++;
            layer = 10;
            _comboObjects.Add(go);
            break;
        }
        ClickBox box = go.GetComponent <ClickBox>();

        go.transform.parent     = this.transform;
        go.transform.localScale = new Vector3(1, 1, 1);

        x = staticBoxMakeCheck(x, box);
        //控制在横条内生成
        Bounds bound = go.GetComponent <Collider2D>().bounds;
        float  half  = bound.size.x / 2;

        if (type == ClickBox.BoxType.ComboBox)
        {
            half += half * 0.3f;
        }
        float temp = min + half;

        if (x < temp)
        {
            x = temp;
        }
        temp = max - half;
        if (x > temp)
        {
            x = temp;
        }
        box.Init(half, layer + index);

        if (type == ClickBox.BoxType.ComboBox)
        {
            float tt = max + Math.Abs(min);
            x = min + (tt / 2);
        }
        //技能条重叠解决
        //if (_comboObjects.Count > 0 && type != ClickBox.BoxType.ComboBox)
        //{
        //    foreach (GameObject d in _comboObjects)
        //    {
        //        DragBox drag = d.GetComponent<DragBox>();
        //        float haf = drag.childBox.bounds.size.x/2;
        //        if (drag.childBox.bounds.Intersects(bound))
        //        {
        //            x += drag.childBox.bounds.size.x;
        //        }
        //    }
        //}
        go.transform.position = new Vector3(x, y, 0);
    }
Example #5
0
 public MoveBoxState(ClickBox.BoxType t, string[] s, MonsterMgr r)
 {
     type = t;
     role = r;
     strs = s;
 }