Rotação do Jogo
- Página Anterior Saltinho do Jogo
- Próxima Página Movimento do Jogo
O quadrado vermelho pode girar:
Girar componente
Na parte anterior deste tutorial, o quadrado vermelho podia se mover na área do jogo, mas não podia girar ou rolar.
Para girar o componente, devemos alterar a maneira de desenhar o componente.
O único método de rotação disponível para o elemento canvas girará toda a tela:

qualquer conteúdo que você desenhar na tela também será girado, não apenas o componente específico.
É por isso que devemos usar update()
faz algumas alterações no método:
Primeiro, salvamos o objeto de contexto atual da tela:
ctx.save();
Em seguida, usamos o método translate para mover toda a tela para o centro do componente específico:
ctx.translate(x, y);

Em seguida, usamos o método rotate() para executar a rotação desejada:
ctx.rotate(angle);

Agora estamos prontos para desenhar o componente na tela, mas agora vamos desenhar o centro do componente na posição 0,0 na tela deslocada (e girada):
ctx.fillRect(width / -2, height / -2, width, height);

Após a conclusão, devemos usar o método restore para restaurar o objeto de contexto para sua posição salva:
ctx.restore();
Este componente é o único que roda:

construtor do componente
component
O construtor tem um nome ângulo
nova propriedade, que representa o ângulo do componente em radianos.
component
O construtor update
O método que nos permite desenhar o componente na posição, aqui você pode ver a variação permitida na rotação do componente:
instância
function component(width, height, color, x, y) { this.width = width; this.height = height; this.angle = 0; this.x = x; this.y = y; this.update = function() { ctx = myGameArea.context; ctx.save(); ctx.translate(this.x, this.y); ctx.rotate(this.angle); ctx.fillStyle = color; ctx.fillRect(this.width / -2, this.height / -2, this.width, this.height); ctx.restore(); } } function updateGameArea() { myGameArea.clear(); myGamePiece.angle += 1 * Math.PI / 180; myGamePiece.update(); }
- Página Anterior Saltinho do Jogo
- Próxima Página Movimento do Jogo