Olá, meu nome é Samuel, estou estudando programação por conta própria com algumas apostilas que um colega me deu. Escolhi a aprender desenvolver jogos e agora estou com um problema em um código que não está executando a ação.
É um estilo de jogo bem simples, conhecido como Breakout, porém quero desenvolver eu mesmo a engine do jogo. Para isso estou usando arquivos .js
Este é o código da bola que é disparada pelo player:
var jogador = new Jogador();
function Bola(context) {
this.context = context;
this.x = 0;
this.y = 0;
this.velocidadeX = 0;
this.velocidadeY = 0;
this.cor = 'red';
this.raio = 7
this.limite = jogador.y + 10;
}
Bola.prototype = {
atualizar:
function() {
var ctx = this.context;
if(this.y < ctx.canvas.height) {
if(this.x < this.raio || this.x > ctx.canvas.width - this.raio) {
this.velocidadeX *= -1;
}
if(this.y < this.raio) {
this.velocidadeY *= -1;
}
if(this.y > jogador. y && this.x > jogador.x && this.x < jogador.x + 100) {
this.velocidadeX *= -1;
this.velocidadeY *= -1;
}
}
this.x += this.velocidadeX;
this.y += this.velocidadeY;
},
desenhar:
function() {
var ctx = this.context;
ctx.fillStyle = this.cor;
ctx.beginPath();
ctx.arc(this.x, this.y, this.raio, 0, 2*Math.PI, false);
ctx.fill();
}
}
Na linha 23 era para a bolinha "bater" no player e voltar com a direnção mudada, porém não é o que acontece, ela simplesmente passa direto.