Пример #1
0
    public void SetRightCell(Cell cell)
    {
        rightCell = cell;
        GameObject obj = rightCell.gameObject;

        if (rightCell.isRightCell)
        {
            this.transform.Translate(obj.transform.position.x - this.transform.position.x, obj.transform.position.y - this.transform.position.y, 0F);
            rightCell.isRightCell = false;
            obj.GetComponent <CircleCollider2D>().enabled = false;

            // При отпускании блока, нужно добалять соответсвующий блок в game
            var    cellPos = rightCell.PosInGrid;
            var    go      = this.gameObject;
            e.Game game    = GameObject.Find("GameField").GetComponent <Level>().game;
            switch (go.GetComponent <ControlBlock>().GetBlockType())
            {
            case cb.BlockType.cbAction:
                Debug.Log("cdAction");
                var new_act = new e.ColorSwitch(0, this.GetComponent <ColorSwitch>().color, rightCell.posInGridX, rightCell.posInGridY);
                game.AddObject(new_act);
                break;

            case cb.BlockType.cbCondition:
                Debug.Log("cbCondition");
                var new_cond = new e.ColorCondition(go.GetComponent <ConditionBlock>().color, new e.Point(-1, 0), rightCell.posInGridX, rightCell.posInGridY);
                game.AddObject(new_cond);
                break;

            case cb.BlockType.cbCicle:
                break;
            }
        }
    }
Пример #2
0
    void Start()
    {
        balls = new Dictionary <e.Color, int> {
            { e.Color.Red, redBallsCount },
            { e.Color.Green, greenBallsCount },
            { e.Color.Blue, blueBallsCount },
            { e.Color.Purple, purpleBallsCount },
            { e.Color.Yellow, yellowBallsCount }
        };
        ballHistory = e.BallHistory.GetInstance();
        ballHistory.Clear();

        var basket  = new e.Bascket(e.Color.Green, 3, 7);
        var basket2 = new e.Bascket(e.Color.Green, 1, 7);
        var basket3 = new e.Bascket(e.Color.Green, 2, 7);

        this.game = new e.Game();
        game.AddObject(basket);
        game.AddObject(basket2);
        game.AddObject(basket3);
    }
Пример #3
0
    public void Play()
    {
        var g = new e.BallGenerator(balls, 2, -1);

        game.AddObject(g);

        for (var i = 0; i < 350; i++)
        {
            game.Step();
        }

        foreach (var obj in game.GetCurrentWorld())
        {
            if (obj is e.ColorSwitch)
            {
                var clone = Instantiate(this.ColorSwitchPrefab);
                clone.GetComponent <ColorSwitch>().ColorSwitcher = obj as e.ColorSwitch;
                clone.GetComponent <ColorSwitch>().active        = true;
            }
        }

        for (var i = 0; i < ballHistory.GetList().Count; i++)
        {
            var ball  = ballHistory.GetList()[i];
            var clone = Instantiate(this.BallPrefab, GeneratorPrefab.transform.position, GeneratorPrefab.transform.rotation);
            clone.GetComponent <Ball>().eBall = ball;
            e.Color originColor = ball.GetActions()[0].Color;
            clone.GetComponent <SpriteRenderer>().sprite = clone.GetComponent <Ball>().GetSpriteByColor(originColor);
        }

        var grid   = GameObject.Find("Grid").GetComponent <GridInit>();
        int height = grid.height;
        int width  = grid.width;

        for (int i = 0; i < height; i++)
        {
            for (int j = 0; j < width; j++)
            {
                grid.cellsArray[i, j].GetComponent <SpriteRenderer>().enabled = false;
            }
        }
    }