3
respostas

Fiz o Jogo do Cobrinha .... Ainda é Versão 0

Galera,

Tive um trabalho monstruoso para conseguir fazer esse jogo do pacman .... GZUIS

Começando agora, então a gente apanha mesmo. kkk

Mas saiu!!

Para quem quiser jogar:

Para virar a ESQUERDA da bola: botão ESQUERDO

Para virar a DIREITA da bola: Botão DIREITO

Essa é a versão ZERO, pois o jogo ainda não está pronto. Ainda irei corrigir alguns erros como, por exemplo:

1) o bolinha azul que sai da tela e se perde;

2) o sentido do clique as vezes faz voltar. Dependendo da direção da bolinha quando clica para esquerda ou direita ele faz voltar e não virar para a direção escolhida;

3) mudar a posição da bolinha vermelha para iniciar em local diferente a cada atualização.

4) automatizar o reconhecimento do novo ponto da bolinha vermelha para poder identificar que acertou.

5) e outros problemas que eu achar ou que vocês acharem.

Quem tiver ideia e dicas pode mandar. Irei deixar o fórum aberto para ir recebendo essas dicas. Irei postar as versões atualizadas no fórum da aula que eu tiver terminado a versão. Mas tentarei postar aqui o link que remete a essa atualização.

Espero ter ajudado. Sucesso na sua jornada!!

<canvas width="600" height="400"></canvas>

<script>

    var tela = document.querySelector("canvas");
    var pincel = tela.getContext("2d");


    function desenharCirculos (x, y, raio, cor) {

        pincel.fillStyle = cor;
        pincel.beginPath();
        pincel.arc (x, y, raio, 0, 2*Math.PI);
        pincel.fill();
    }

    function limparTela () {

        pincel.clearRect (0, 0, 600, 400);
    }


    var direcaoBotaoEsquerdo = [1, 2, 3, 4, 5];

    var direcaoBotaoDireta = [6, 7, 8, 9, 10];

    var positionE = 0;

    var positionD = 2;

    var x = 300;

    var y = 200;

    var paraEsquerda = true;
    var paraDireita = false;

    var começar = true;

    function iniciar(){

        setInterval (pacman, 10);
    }

    function botaoEsquerdo() {
            positionE++;
            paraEsquerda = true;
            paraDireita = false;
        }

    function botaoDireito (){
            positionD++;
            paraDireita = true;
            paraEsquerda = false;
            return false;
    }

    function pacman(){

        if (começar) {

                    if (x >= 190 && x <= 210 && y >= 90 && y <= 110){
                            começar = false;
                            pincel.fillStyle = "red";
                            pincel.font = "30px Georgia"
                            pincel.fillText ("Parabéns, você acertou!", 50, 50);
                    } else {

                            if (paraEsquerda) {

                                if (positionE == 5){
                                    positionE = 1;
                                }

                                if (direcaoBotaoEsquerdo[positionE] == 1){
                                    x++;
                                }

                                if (direcaoBotaoEsquerdo[positionE] == 2){
                                    y = y - 1;
                                }

                                if (direcaoBotaoEsquerdo[positionE] == 3){
                                    x = x - 1;
                                }

                                if (direcaoBotaoEsquerdo[positionE] == 4){
                                    y++;
                                }

                                if (direcaoBotaoEsquerdo[positionE] == 5){
                                    x++;
                                }
                                limparTela ();
                                desenharCirculos (x, y, 10, "blue");            
                                desenharCirculos (200, 100, 8, "red");
                            }
                    }

                    if (x >= 190 && x <= 210 && y >= 90 && y <= 110){
                            começar = false;
                            pincel.fillStyle = "red";
                            pincel.font = "30px Georgia"
                            pincel.fillText ("Parabéns, você acertou!", 50, 50);
                    } else {

                            if (paraDireita) {
                                if (positionD == 5){
                                    positionD = 1;
                                }

                                if (direcaoBotaoDireta[positionD] == 6){
                                    x++;
                                }

                                if (direcaoBotaoDireta[positionD] == 7){
                                    y++;
                                }

                                if (direcaoBotaoDireta[positionD] == 8){
                                    x = x - 1;
                                }

                                if (direcaoBotaoDireta[positionD] == 9){
                                    y = y -1;
                                }

                                if (direcaoBotaoDireta[positionD] == 10){
                                    x++;
                                }
                                limparTela ();
                                desenharCirculos (x, y, 10, "blue");
                                desenharCirculos(200, 100, 8, "red");
                            }

                    }

        } else {
            return começar = false;
        }
    }

    iniciar ();

    tela.onclick = botaoEsquerdo;

    tela.oncontextmenu = botaoDireito;


</script>
3 respostas

Realmente está de parabéns! da pra sentir os esforço daqui. Quero vez a evolução também! A solução da 1) você pode usar uma função chamada clearInterval() //para quebrar a contagem quando x >590 && x<10 && y>390 && y<10. A solução da 2) acredito que um revisão nos "arrays" seja necessária ou até mesmo dentro dos "if"s, pois suspeito que o final esteja se repetindo o ultimo (++) da esquerda e o (++) da primeiro da direita. Dá para sentir que entre a troca tem um repetição do comando indesejável. A solução da 3) e 4) é possível fazer manualmente, mas o código seria enorme é nada pratico. Deva existir alguma função que auxilie nessa troca, mas ainda não conheço.

Fala Victor,

Estou na versão 03. Agora o jogo está redondo.

Sobre a movimentação da cobrinha são feitas pelas setas, mais fácil do que controlar pelos 2 botões do mouse.

E o mais difícil do código era mesmo ter que controlar só por 2 botões.

Agora que tem as setas ficou mais fácil a programação. kkk

Dá uma olhada:

https://cursos.alura.com.br/forum/topico-fiz-o-jogo-do-cobrinha-versao-iii-200911

Espero ter ajudado. Sucesso na sua jornada!!

Fantástico Diógenes !