static void verificaColisao(ref int gX, ref int gY, ref bool gVivo) { if ((pacX == gX) && (pacY == gY)) { if (pacEnergizado) { //deveria voltar para posição inicial pontos += 50; gX = 14; gY = 13; gVivo = false; } else { vidas--; PacSpritesAtual = PacSprites.MORREU; Console.Beep(); if (vidas == 0) { imprimeMensagem("Game Over!"); vidas = 3; inicializa(); } Console.ReadKey(); posicionaPersonagens(); } } }
public static void moverJogador(ConsoleKeyInfo keyInfo) { //verificar se pertou seta para cima ou seta para baixo if (keyInfo.Key == ConsoleKey.UpArrow) { //diminui o valor da posição do jogador //se o jogador não chegou o topo da janela if (pacY > 0) { if (verificaPosicao(pacY - 1, pacX)) { pacY--; } } else { pacY = mapa.GetLength(0) - 1; } PacSpritesAtual = PacSprites.CIMA; } else if (keyInfo.Key == ConsoleKey.DownArrow) { //aumenta o valor da posição do jogador //se o jogador não chegou na base da janela if (pacY < (mapa.GetLength(0) - 1)) { //verificar colisão com obstáculo if (verificaPosicao(pacY + 1, pacX)) { pacY++; } } else { //aparece no topo pacY = 0; } PacSpritesAtual = PacSprites.BAIXO; } else if (keyInfo.Key == ConsoleKey.RightArrow) { if (pacX < (mapa.GetLength(1) - 1)) { if (verificaPosicao(pacY, pacX + 1)) { pacX += 1; } } else { //atravessa para o lado esquerdo da tela pacX = 0; } PacSpritesAtual = PacSprites.DIREITA; } else if (keyInfo.Key == ConsoleKey.LeftArrow) { if (pacX > 0) { if (verificaPosicao(pacY, pacX - 1)) { pacX -= 1; } } else { pacX = mapa.GetLength(1) - 1; } PacSpritesAtual = PacSprites.ESQUERDA; } comecome(); }