示例#1
0
        //Busca si la posicion de la cabeza coincide con un nodo de la misma, del tablero o comida y acaba el juego o crea una nueva comida y crece
        private void colision()
        {
            System.Collections.IEnumerator ent = nivelActual.nivel.Tablero.GetEnumerator();
            System.Collections.IEnumerator ens = serpiente.Cuerpo.GetEnumerator();

            int[] coordenadas = new int[2];

            Boolean estaChocado = false;
            int     numNodos    = serpiente.Cuerpo.Count;


            while (ens.MoveNext() && !estaChocado && numNodos > 1)
            {
                numNodos--;
                n = (Nodo)ens.Current;
                if (n.X == serpiente.X && n.Y == serpiente.Y)
                {
                    estaChocado = true;
                }
                else
                {
                    estaChocado = false;
                }
            }

            while (ent.MoveNext() && !estaChocado)
            {
                coordenadas = (int[])ent.Current;
                if (coordenadas[0] == serpiente.X && coordenadas[1] == serpiente.Y)
                {
                    estaChocado = true;
                }
                else
                {
                    estaChocado = false;
                }
            }



            if (serpiente.X == comida.X && serpiente.Y == comida.Y)
            {
                serpiente.crecer(comida.Cantidad);
                generarComida();
            }

            if (estaChocado)
            {
                _hayFin = true;
            }
        }
示例#2
0
        //Metodo llamado en cada tick del timer, mueve la serpiente y comprueba si hay colisiones
        public void actualizar()
        {
            serpiente.Mover();
            if (comida.buscarenComida(serpiente.X, serpiente.Y))
            {
                serpiente.crecer(comida.Cantidad);
                generarPuntuacion(comida.Cantidad);
                generarComida();
            }
            _hayFin = nivelActual.nivel.buscarenTablero(serpiente.X, serpiente.Y);

            if (_hayFin == false)
            {
                _hayFin = serpiente.buscarenSerpiente(serpiente.X, serpiente.Y, false);
            }
        }