Exemple #1
0
    private void OnTriggerEnter2D(Collider2D collision)
    {
        if (collision.tag == "NumberBoxLayer")
        {
            if (selectedNumberBox != null)
            {
                selectedNumberBox.GetComponent <SpriteRenderer>().color = Color.white;
                selectedNumberBox = null;
            }

            NumberBoxesController numberController = collision.GetComponent <NumberBoxesController>();
            bool selectedBoxIsFull = numberController.numberBoxIsFull;

            if (!selectedBoxIsFull)
            {
                selectedNumberBox = collision.gameObject;
                selectedNumberBox.gameObject.GetComponent <SpriteRenderer>().color = Color.green;
            }
        }
        else if (collision.tag == "RightSide" && numberIsPlaced)
        {
            sideIsMarkt = true;
        }
    }
Exemple #2
0
    void PanGesture_StateUpdated(GestureRecognizer gesture)
    {
        if (gameObject != null)
        {
            switch (gesture.State)
            {
            case GestureRecognizerState.Began:
                Vector2 pos = new Vector2(gesture.FocusX, gesture.FocusY);

                pos    = Camera.main.ScreenToWorldPoint(pos);
                offset = transform.position - (Vector3)pos;

                RaycastHit2D hit = Physics2D.Raycast(pos, Vector2.zero);
                if (hit.collider != null && hit.collider.gameObject == gameObject)
                {
                    check();
                    currentGameObject = gameObject;
                    dragging          = true;
                    if (selectedNumberBox != null)
                    {
                        selectedNumberBox.GetComponent <NumberBoxesController>().numberBoxIsFull = false;
                    }
                }
                break;

            case GestureRecognizerState.Executing:
                if (dragging)
                {
                    Vector2 newPos = new Vector2(gesture.FocusX, gesture.FocusY);
                    newPos = Camera.main.ScreenToWorldPoint(newPos);

                    transform.position = (Vector3)newPos + offset;
                }
                break;

            case GestureRecognizerState.Ended:
                if (selectedNumberBox != null)
                {
                    NumberBoxesController numberBoxesController = selectedNumberBox.GetComponent <NumberBoxesController>();
                    int newNumberBoxIndex = numberBoxesController.numberBoxIndex;
                    if (currentGameObject == gameObject)
                    {
                        if (numberIsPlaced)
                        {
                            GameManager.Instance.MoveNumberToNewBox(gameObject, number, newNumberBoxIndex, numberBoxIndex);
                        }
                        else
                        {
                            GameManager.Instance.RemoveCollectedNumber(gameObject);
                            GameManager.Instance.AddNumberToBox(gameObject, number, newNumberBoxIndex);
                            numberIsPlaced = true;
                        }
                        //GameObject kan bli null om senast adderade bokstaven gjorde så att ordet var rätt
                        if (gameObject != null)
                        {
                            selectedNumberBox.GetComponent <NumberBoxesController>().numberBoxIsFull = true;
                            transform.position = selectedNumberBox.transform.position;
                            startingPosition   = selectedNumberBox.transform;
                            numberBoxIndex     = newNumberBoxIndex;
                        }
                    }
                    currentGameObject = null;
                }
                else
                {
                    if (sideIsMarkt && (GameManager.Instance.collectedNumbers.Count < GameManager.Instance.numberPositions.Count))
                    {
                        startingPosition = GameManager.Instance.numberPositions[GameManager.Instance.collectedNumbers.Count].transform;
                        LeanTween.move(gameObject, startingPosition, 0.1f);

                        GameManager.Instance.PanNumberBackToSide(gameObject, numberBoxIndex);
                        //LeanTween.scale(leftSide, new Vector3(originalLeftSideSize.x - 0.1f, originalLeftSideSize.y, 0), 0.1f);
                        sideIsMarkt    = false;
                        numberIsPlaced = false;
                    }
                    else
                    {
                        LeanTween.move(gameObject, startingPosition.position, 0.1f);
                        if (selectedNumberBox != null)
                        {
                            selectedNumberBox.GetComponent <NumberBoxesController>().numberBoxIsFull = true;
                        }
                    }
                }
                dragging = false;

                break;
            }
        }
    }