Está en la página 1de 3

AGREGAR ANIMACIÓN A LOS FANTASMAS.

void moverFantasmas()
{
// Primero movemos cada fantasma a las coordenas X de la linea de la puerta +1px

int puertaIzquierda = 458;


int puertaAncha = 42;
int puertaArriba = 276;
for (int i = 0; i < noFantasmas; i++)
{
if (forzarFantasmas[i] == true)
{
if ((fantasmaX[i] > puertaIzquierda) && (fantasmaX[i] +fantasma.Width < puertaIzquierda +
puertaAncha))
{
// cuando el fantasma esta en la linea de la
// puera lo movemos fuera de la caja
fantasmaMoveX[i] = 0;
fantasmaMoveY[i] = -5;
// hailitamos la colición de los fantasmas
}
else if (fantasmaX[i] > puertaIzquierda)
{
fantasmaMoveX[i] = -5;
fantasmaMoveY[i] = 0;
}
else if (fantasmaX[i] < puertaIzquierda)
{
fantasmaMoveX[i] = 5;
fantasmaMoveY[i] = 0;
}
fantasmaX[i] = fantasmaX[i] + fantasmaMoveX[i];
fantasmaMoveY[i] = fantasmaMoveY[i] + fantasmaMoveY[i];
if (fantasmaY[i] + fantasma.Height < puertaArriba)
{
fantasmaUltimaDireccion[i] = 0;
forzarFantasmas[i] = false;
}

}
}
}

AGREGAR EL ESPACIO DE NOMBRE System


using System;
Agregar la variable global
//movimiento
int semillaaleatoria = 0;

Crear el método de animación

void AnimateGhosts()
{
// Necesitamos seleccionar una dirección aleatoria,
// para moverse en esa dirección sin que tengamos colision

for (int i = 0; i < noFantasmas; i++)


{
if (forzarFantasmas[i] == false)
{
if (cambioDireccion[i])
{
cambioDireccion[i] = false; // Nos aseguramos
// que nos podemos mover
semillaaleatoria++;
Random rnd = new Random(semillaaleatoria);
// 0 up 1 down 2 left 3 right
int randomDirection = rnd.Next(0, 4);
if ((fantasmaUltimaDireccion[i] == 0) ||(fantasmaUltimaDireccion[i] == 1))
randomDirection = rnd.Next(2, 4);
else
randomDirection = rnd.Next(0, 2);
if (randomDirection == 0)
{
fantasmaMoveY[i] = -5;
fantasmaMoveX[i] = 0;
}
if (randomDirection == 1)
{
fantasmaMoveY[i] = 5;
fantasmaMoveX[i] = 0;
}
if (randomDirection == 2)
{
fantasmaMoveY[i] = 0;
fantasmaMoveX[i] = -5;
}
if (randomDirection == 3)
{
fantasmaMoveY[i] = 0;
fantasmaMoveX[i] = 5;
}
fantasmaUltimaDireccion[i] = randomDirection;
}

if (checkbounds(fantasmaX[i], fantasmaY[i],fantasmaMoveX[i], fantasmaMoveY[i], fantasma, false))


{
Rectangle tempRect = new Rectangle(fantasmaX[i], fantasmaY[i], fantasma.Width,
fantasma.Height);
if (tempRect.Intersects(tunnel1))
fantasmaX[i] = tunnel2.Left - tempRect.Width
- 1;
else if (tempRect.Intersects(tunnel2))
fantasmaX[i] = tunnel1.Left + tunnel1.Width +
1;
else
fantasmaX[i] = fantasmaX[i] + fantasmaMoveX[i];
fantasmaY[i] = fantasmaY[i] + fantasmaMoveY[i];
}
else // El fantasma que colisiona con algo,
//marcado para luego calcular una nueva dirección
{
cambioDireccion[i] = true;
}
if (fantasmasCambio[i])
{
fantasmasCambio[i] = false;
semillaaleatoria++;
Random rndShallWe = new Random(semillaaleatoria);
if (rndShallWe.Next(0, 100) > 50)
{
cambioDireccion[i] = true;
}
}
}
}
}

EN el método update se debe agregar la inicialización de la semillaaleatoria

ANIMAR LA PUERTA.

También podría gustarte

  • Criptografía Simetrica
    Criptografía Simetrica
    Documento26 páginas
    Criptografía Simetrica
    Ligia Astrid Hernandez Bonilla
    Aún no hay calificaciones
  • Builder
    Builder
    Documento4 páginas
    Builder
    Ligia Astrid Hernandez Bonilla
    Aún no hay calificaciones
  • Factory Method
    Factory Method
    Documento2 páginas
    Factory Method
    Ligia Astrid Hernandez Bonilla
    Aún no hay calificaciones
  • Worm
    Worm
    Documento42 páginas
    Worm
    Ligia Astrid Hernandez Bonilla
    Aún no hay calificaciones