Exemplo n.º 1
0
    void OnSpawnBlast(BlastDir blastDir, int dis)
    {
        float addOnX = transform.position.x;
        float addOnY = transform.position.y;

        switch (blastDir)
        {
        case BlastDir.top:
            addOnX = transform.position.x;
            addOnY = transform.position.y + dis;
            break;

        case BlastDir.down:
            addOnX = transform.position.x;
            addOnY = transform.position.y - dis;
            break;

        case BlastDir.left:
            addOnX = transform.position.x - dis;
            addOnY = transform.position.y;
            break;

        case BlastDir.right:
            addOnX = transform.position.x + dis;
            addOnY = transform.position.y;
            break;

        default:
            break;
        }
        var b = Instantiate(blastPrefab);

        b.transform.position = new Vector3(addOnX, addOnY, transform.position.z);
        b.gameObject.SetActive(true);
        b.Init();

        Debug.Log("sinh bom " + blastDir);
    }
Exemplo n.º 2
0
    bool OnCheckBrick(BlastDir blastDir, int dis)
    {
        Vector3 direction = Vector3.zero;

        switch (blastDir)
        {
        case BlastDir.top:
            direction = Vector3.up;
            break;

        case BlastDir.down:
            direction = Vector3.down;
            break;

        case BlastDir.left:
            direction = Vector3.left;
            break;

        case BlastDir.right:
            direction = Vector3.right;
            break;

        default:
            break;
        }

        //
        if (_isGetBrickDict == null)
        {
            _isGetBrickDict = new Dictionary <BlastDir, bool>();
        }

        if (_isGetBrickDict.ContainsKey(blastDir))
        {
            if (_isGetBrickDict[blastDir])
            {
                return(false);
            }
        }

        RaycastHit2D hit;

        hit = Physics2D.Raycast(new Vector3(transform.position.x - 0.5f, transform.position.y - 0.5f, transform.position.z), direction,
                                dis, LayerMask);

        Debug.DrawRay(new Vector3(transform.position.x - 0.5f, transform.position.y - 0.5f, transform.position.z), direction * dis, Color.green);

        if (hit.collider)
        {
            Debug.Log("hit brick hit ");

            if (hit.collider.tag == GameLayer.Brick)
            {
                if (!_isGetBrickDict.ContainsKey(blastDir))
                {
                    _isGetBrickDict.Add(blastDir, true);
                }
                Debug.Log("hit NORMAL brick hit");
                return(true);
            }
            else
            {
                Debug.Log("hit UNBRAEKE brick hit");
            }
        }

        if (hit.collider != null)
        {
            return(false);
        }
        else
        {
            return(true);
        }
    }