Gravidade de Jogo
- Página Anterior Som de Jogo
- Próxima Página Saltinho de Jogo
Em alguns jogos, existe uma força que puxa os componentes do jogo em uma direção, por exemplo, a gravidade puxa os objetos para o chão.
gravidade
Para adicionar essa característica ao construtor do nosso componente, primeiro adicione um gravity
Atributo, que define a gravidade atual. Em seguida, adicione um gravitySpeed
Atributos, que aumentam sempre que atualizamos o frame:
Exemplo
function component(width, height, color, x, y, type) { this.type = type; this.width = width; this.height = height; this.x = x; this.y = y; this.speedX = 0; this.speedY = 0; this.gravity = 0.05; this.gravitySpeed = 0; this.update = function() { ctx = myGameArea.context; ctx.fillStyle = color; ctx.fillRect(this.x, this.y, this.width, this.height); } this.newPos = function() { this.gravitySpeed += this.gravity; this.x += this.speedX; this.y += this.speedY + this.gravitySpeed; } }
Touchar o chão
Para evitar que o quadrado vermelho caia para sempre, precisamos parar a queda quando ele atingir o fundo da área de jogo:
Exemplo
this.newPos = function() { this.gravitySpeed += this.gravity; this.x += this.speedX; this.y += this.speedY + this.gravitySpeed; this.hitBottom(); } this.hitBottom = function() { var rockbottom = myGameArea.canvas.height - this.height; if (this.y > rockbottom) { this.y = rockbottom; } }
Acelerar
No jogo, quando há uma força puxando o quadrado para baixo, você deve projetar um método para forçar o componente a acelerar.
Quando alguém clicar no botão, aciona uma função que faz o quadrado vermelho voar no ar:
Exemplo
<script> function accelerate(n) { myGamePiece.gravity = n; } </script> <button onmousedown="accelerate(-0.2)" onmouseup="accelerate(0.1)">Acelerar</button>
Um jogo
Faça um jogo com o conhecimento que adquirimos até agora:
Exemplo
Clique no botão de aceleração para começar o jogo.
Quanto tempo você vai viver? Use o botão de aceleração para permanecer no ar.
- Página Anterior Som de Jogo
- Próxima Página Saltinho de Jogo