예제 #1
0
        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();
                }
            }
        }
예제 #2
0
        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();
        }