Esempio n. 1
0
    private void CalculaNextPosition(SnakePart part)
    {
        Vector2 currentDirection     = part.GetCurrentDirection(); //dirección actual
        Vector2 currentPosition      = part.GetPrevPosition();     //posición desde la que calculamos la siguiente
        float   desplazacimentoTotal = part.getWidth();            //cuanto desplazamiento entre prev y next ha de existir (es el ancho del sprite de la serpiente)

        Vector2 nextPosition = new Vector2(currentPosition.x + (desplazacimentoTotal * currentDirection.x), currentPosition.y + (desplazacimentoTotal * currentDirection.y));

        //asignamos la anterior dirección como siguiente dirección de la siguiente parte si tiene siguiente parte
        if (part.GetNextPart())
        {
            part.GetNextPart().GetComponent <SnakePart>().AddDirection(part.GetCurrentDirection());
        }

        //asignamos la nueva siguiente posición calculada
        part.SetNextPosition(nextPosition);
    }