Beispiel #1
0
    private void Start()
    {
        snakeCollision = GetComponentInParent <SnakeCollision>();
        sphereCollider = GetComponent <Collider>();

        if (colliderType == SnakeColliderType.MAGNET)
        {
            sphereCollider.enabled = false;
        }
    }
Beispiel #2
0
    private void Start()
    {
        snakeMovement    = GetComponent <SnakeMovement>();
        snakeCollision   = GetComponent <SnakeCollision>();
        snakeTailSpawner = GetComponent <SnakeTailSpawner>();
        snakeHatChooser  = GetComponentInChildren <SnakeHatChooser>();

        snakeMovement.Init(this);
        snakeCollision.Init(this);
        snakeTailSpawner.Init(this);
        snakeHatChooser.Init(GameManager.instance.GetSavedData());
    }
Beispiel #3
0
    private void Start()
    {
        snakeMovement    = GetComponent <SnakeMovement>();
        snakeCollision   = GetComponent <SnakeCollision>();
        snakeTailSpawner = GetComponent <SnakeTailSpawner>();
        snakeHatChooser  = GetComponentInChildren <SnakeHatChooser>();

        snakeMovement.Init(this);
        snakeCollision.Init(this);
        snakeTailSpawner.Init(this);
        snakeHatChooser.Init(GameManager.instance.GetSavedData());

        waitAfterResumeWaitForSeconds = new WaitForSeconds(waitToReviveDelay);
    }
Beispiel #4
0
        private void handleCollisionWithSnake(SnakeCollision collision)
        {
            switch (collision)
            {
            case SnakeCollision.Apple:
                m_soundEat.Play();
                // --- todo notice that new position can be same as snake , fix this !!!!!!
                Point topLeftInsideBorder =
                    new Point {
                    x = m_border.TopLeft.x + 1, y = m_border.TopLeft.y + 1
                };
                Point bottomRightInsideBorder =
                    new Point {
                    x = m_border.BottomRight.x - 1, y = m_border.BottomRight.y - 1
                };
                m_apple.Head = Utils.GetRandPoint(
                    topLeftInsideBorder,
                    bottomRightInsideBorder,
                    m_snake.GetHead());
                m_apple.IsDirty = true;
                Point possibleSnakeTailPoint = m_snake.Grow();
                if (!isCollision(possibleSnakeTailPoint))
                {
                    m_snake.AddToTail(possibleSnakeTailPoint);
                    m_CurrentApplesResult.Score   += 10;
                    m_snake.CurrentUpdatePeriodSec =
                        m_snake.CurrentUpdatePeriodSec * (1 - Constants.GROW_PERCENT / 100f);
                    if (m_CurrentApplesResult.Score > m_BestApplesResult.Score)
                    {
                        m_storageBestResult.Write(m_CurrentApplesResult);
                        m_BestApplesResult = m_CurrentApplesResult;
                        m_bNewBestResult   = true;
                    }
                    m_textOutput.Clear();
                    m_textOutput.AddMessage(getScoreMessage());
                }
                m_gameState = GameState.Playing;
                break;

            case SnakeCollision.Border:
            case SnakeCollision.Snake:
                m_gameState = GameState.FinishPlaying;
                break;


            default:
                break;
            }
        }