/// <summary> /// Rehubica un fantasma en la posicion central del mapa /// </summary> /// <param name="fant">Fantasma a rehubicar</param> private void rehubicarFantasmas(Fantasma fant) { Point[] cords = mapaActual.posicionInicalFantasmas(); fant.IAct = cords[0].X; fant.JAct = cords[0].Y; fant.X = cords[1].X; fant.Y = cords[1].Y; }
/// <summary> /// Evalua el nivel actual y asigna el nuevo tablero /// </summary> /// <returns>Retorna el tablero del siguiente nivel</returns> //private Mapa siguienteNivel() { // Mapa m = lvl3; // switch (this.nivelActual) { // case 1: // m = lvl1; // break; // case 2: // m = lvl2; // break; // case 3: // m = lvl3; // break; // } // return m; //} /// <summary> /// Calcula intersecciones entre el PacMan y un fantasma ejecutando acciones dependiendo del estado del fantasma /// </summary> /// <param name="fant">Fantasma al que se le evaluara la colision</param> private void interseccionPacmanFantasma(Fantasma fant) { //Colision por la izquierda if ((this.pacMan.X <= (fant.X + fant.Windth) && (this.pacMan.X + 10) >= (fant.X + fant.Windth)) && (this.pacMan.Y >= fant.Y && this.pacMan.Y <= fant.Y + fant.Height || this.pacMan.Y + this.pacMan.Height >= fant.Y && this.pacMan.Y <= fant.Y + fant.Height)) { if (fant.Estado == 2) { this.rehubicarFantasmas(fant); fant.quitarVulnerabilidad(); } else { this.rehubicarPacman(); if (this.pacMan.disminuirVida(fant.Poder) <= 0) { this.jugando = 3; } } sonido(2); } //Colision por la derecha else if (((this.pacMan.X + this.pacMan.Windth) >= fant.X && (this.pacMan.X + this.pacMan.Windth - 10) <= fant.X) && (this.pacMan.Y >= fant.Y && this.pacMan.Y <= fant.Y + fant.Height || this.pacMan.Y + this.pacMan.Height >= fant.Y && this.pacMan.Y <= fant.Y + fant.Height)) { if (fant.Estado == 2) { this.rehubicarFantasmas(fant); fant.quitarVulnerabilidad(); } else { this.rehubicarPacman(); if (this.pacMan.disminuirVida(fant.Poder) <= 0) { this.jugando = 3; } } sonido(2); } //Colision por la arriba else if ((this.pacMan.Y <= (fant.Y + fant.Height) && (this.pacMan.Y + 10) >= (fant.Y + fant.Height)) && (this.pacMan.X >= fant.X && this.pacMan.X <= fant.X + fant.Windth || this.pacMan.X + this.pacMan.Windth >= fant.X && this.pacMan.X <= fant.X + fant.Windth)) { if (fant.Estado == 2) { this.rehubicarFantasmas(fant); fant.quitarVulnerabilidad(); } else { this.rehubicarPacman(); if (this.pacMan.disminuirVida(fant.Poder) <= 0) { this.jugando = 3; } } sonido(2); } //Colision por la abajo else if (((this.pacMan.Y + this.pacMan.Height) >= fant.Y && (this.pacMan.Y + this.pacMan.Height - 10) <= fant.Y) && (this.pacMan.X >= fant.X && this.pacMan.X <= fant.X + fant.Windth || this.pacMan.X + this.pacMan.Windth >= fant.X && this.pacMan.X <= fant.X + fant.Windth)) { if (fant.Estado == 2) { this.rehubicarFantasmas(fant); fant.quitarVulnerabilidad(); } else { this.rehubicarPacman(); if (this.pacMan.disminuirVida(fant.Poder) <= 0) { this.jugando = 3; } } sonido(2); } }