/// <summary>
    /// Suoritetaan jokaisella pelin framella.
    /// </summary>
    public override void Update(Time time)
    {
        PhysicsObject p = Peli.pelaaja;

        //Jos pelaaja on tuhoutunut -> palataan.
        if (p.IsDestroyed)
        {
            return;
        }

        //Jos pelaaja on liian kaukana spawnaus paikasta -> palataan
        if (Vector.Distance(spawnPaikka, p.Position) >= 800)
        {
            return;
        }
        else
        {
            spawnPaikka = p.Position;
        }


        //Jos vihollinen on piilossa ja ajastin on menty läpi, etsitään sopivaa paikkaa spawnata pelaajan läheisyyteen.
        //Jos sopivaa paikkaa ei löydy -> ei spawnata, yritetään uudestaan seuraavalla framella.
        if (nakyva == false && ajastin.Times == 0)
        {
            //Haetaan satunnainen paikka pelaajan lähettyviltä:
            Vector newPosition = RandomGen.NextVector(LegendOfPallo.TILE_SIZE * 2, LegendOfPallo.TILE_SIZE * 6);
            newPosition += p.Position;

            //Jos satunnainen paikka on pelialueen ulkopuolella -> ei kelpaa joten palataan.
            if (newPosition.X < Peli.Level.Left || newPosition.X > Peli.Level.Right ||
                newPosition.Y < Peli.Level.Bottom || newPosition.Y > Peli.Level.Top)
            {
                return;
            }

            //Jos satunnaisesti valittu paikka on tyhjä, spawnataan olio siihen paikkaan ja muutetaan näkyväksi.
            //Jostain syystä tämän pitää olla <= 1 eikä == 0, tai muuten ei toimi fullscreenissa tai suurella resoluutiolla
            if (Peli.GetObjectsAt(newPosition, LegendOfPallo.TILE_SIZE).Count <= 1)
            {
                nakyva    = true;
                IsVisible = true;
                Position  = newPosition;
                ase.AsetaKanuuna(2, 2, 1);
                ajastin.Start(1);
            }
        }

        base.Update(time);
    }