Пример #1
0
    // ドロップを選択する処理
    private void SelectDrop()
    {
        selectedDrop = board.GetNearestDrop(Input.mousePosition);
        var drop = board.InstantiateDrop(Input.mousePosition);

        drop.SetKind(selectedDrop.GetKind());
        drop.SetSize((int)(board.dropWidth * 1.2f));
        drop.SetDropAlpha(GrabedDropAlpha);
        grabedDropObject = drop.gameObject;

        selectedDrop.SetDropAlpha(SelectedDropAlpha);
        currentState = GameState.DropMove;
    }
Пример #2
0
    // 対象のピースがマッチしているかの判定を行う
    private bool IsMatchDrop(Drop drop)
    {
        // ピースの情報を取得
        var pos  = GetDropBoardPos(drop);
        var kind = drop.GetKind();

        // 縦方向にマッチするかの判定 MEMO: 自分自身をカウントするため +1 する
        var verticalMatchCount = GetSameKindDropNum(kind, pos, Vector2.up) + GetSameKindDropNum(kind, pos, Vector2.down) + 1;

        // 横方向にマッチするかの判定 MEMO: 自分自身をカウントするため +1 する
        var horizontalMatchCount = GetSameKindDropNum(kind, pos, Vector2.right) + GetSameKindDropNum(kind, pos, Vector2.left) + 1;

        return(verticalMatchCount >= GameManager.MachingCount || horizontalMatchCount >= GameManager.MachingCount);
    }