Example #1
0
    void FixedUpdate()
    {
        //comaning snake to move or game over
        if (!hasCollided)
        {
            snakeController.MoveSnake(mobileControls.direction, mobileControls.isAccelerated, mobileControls.smoothTime);

            //if snake head outside field boundaries game over
            if (snakeHead.transform.position.x < fieldCoords[0].x + 0.50f || snakeHead.transform.position.x > fieldCoords[1].x - 0.50f ||
                snakeHead.transform.position.y <fieldCoords[0].y + 0.50f || snakeHead.transform.position.y> fieldCoords[1].y - 0.50f)
            {
                hasCollided = true;
                mobileControls.DeathScreen();
                return;
            }

            Collider[] hit = Physics.OverlapBox(snakeHead.transform.position, snakeHead.transform.localScale / 2);
            for (int i = 0; i < hit.Length; i++)
            {
                if (hit[i].transform.tag == "food")
                {
                    if (hit[i].gameObject.activeSelf)
                    {
                        EatFood(hit[i].gameObject);
                    }
                }
                else
                {
                    hasCollided = true;
                    mobileControls.DeathScreen();
                    return;
                }
            }
        }
        else
        {
            mobileControls.DeathScreen();
        }
    }