Ejemplo n.º 1
0
    public override void OnUpdate(float time_delta_fraction)
    {
        p.GetComponent <Rigidbody>().velocity = new Vector3();

        time_stopped -= time_delta_fraction;
        if (time_stopped <= 0)
        {
            state_machine.ChangeState(new StateGelNormal(p, p.gameObject.GetComponent <SpriteRenderer>(), p.stand));
        }
    }
Ejemplo n.º 2
0
    private void GoToRandomCell()
    {
        var         pos = new Vector3(Mathf.Round(p.transform.position.x), Mathf.Round(p.transform.position.y), p.transform.position.z);
        Vector3     speed;
        Tile        tile;
        BoxCollider collider;

        do
        {
            speed = Utils.RandomDirection4();
            tile  = Tile.GetTile(pos + speed);
            if (tile == null)
            {
                return;
            }
            collider = tile.gameObject.GetComponent <BoxCollider>();
        }while (Utils.CollidingWithAnyEdge(pos + speed) || (tile != null && collider != null && collider.enabled));

        p.GetComponent <Rigidbody>().velocity = p.speed_max * speed;
        nextCell        = pos + speed;
        toNextCellStart = speed;
    }