Rotating a spaceship
<!doctype html> <html lang="en"> <body> <div style="position: absolute; top: 50px; left: 50px;"> <canvas id="canvas" width="200" height="200"> Your browser does not support the HTML 5 Canvas. </canvas>/*from ww w .j a va2 s. co m*/ <script type="text/javascript"> let theCanvas = document.getElementById('canvas'); let context = theCanvas.getContext('2d'); let rotation=0; let x=50; let y=50; function drawScreen() { // draw background and text context.fillStyle = '#000000'; context.fillRect(0, 0, 200, 200); //transformation let angleInRadians = rotation * Math.PI / 180; context.save(); //save current state in stack context.setTransform(1,0,0,1,0,0); // reset to identity //translate the canvas origin to the center of the player context.translate(x,y); context.rotate(angleInRadians); //drawShip context.strokeStyle = '#ffffff'; context.beginPath(); context.moveTo(10,0); context.lineTo(19,19); context.lineTo(10,9); context.moveTo(9,9); context.lineTo(0,19); context.lineTo(9,0); context.stroke(); context.closePath(); //restore context context.restore(); //pop old state on to screen //add to rotation rotation++; } const FRAME_RATE=40; let intervalTime=1000/FRAME_RATE; gameLoop(); function gameLoop() { drawScreen(); window.setTimeout(gameLoop, intervalTime); } </script> </div> </body> </html>