<!DOCTYPE html>
<html>
<head>
  <title>My Platformer Game</title>
  <style type="text/css">
    body {
      margin: 0;
      padding: 0;
    }
<pre><code>canvas {
  background: #eee;
  display: block;
  margin: 0 auto;
}
</code></pre>
  </style>
</head>
<body>
  <canvas id="gameCanvas" width="480" height="320"></canvas>
  <script>
    //Create the canvas
    var canvas = document.getElementById("gameCanvas");
    var ctx = canvas.getContext("2d");
<pre><code>//Background image
var bgReady = false;
var bgImage = new Image();
bgImage.onload = function () {
  bgReady = true;
};
bgImage.src = &quot;images/background.png&quot;;

//Game objects
var hero = {
  speed: 256 // movement in pixels per second
};
var heroReady = false;
var heroImage = new Image();
heroImage.onload = function () {
  heroReady = true;
};
heroImage.src = &quot;images/hero.png&quot;;

//Handle keyboard controls
var keysDown = {};

addEventListener(&quot;keydown&quot;, function (e) {
  keysDown[e.keyCode] = true;
}, false);

addEventListener(&quot;keyup&quot;, function (e) {
  delete keysDown[e.keyCode];
}, false);

//Update game objects
var update = function (modifier) {
  if (38 in keysDown) { // Player holding up
    hero.y -= hero.speed * modifier;
  }
  if (40 in keysDown) { // Player holding down
    hero.y += hero.speed * modifier;
  }
  if (37 in keysDown) { // Player holding left
    hero.x -= hero.speed * modifier;
  }
  if (39 in keysDown) { // Player holding right
    hero.x += hero.speed * modifier;
  }
};

//Draw everything
var render = function () {
  if (bgReady) {
    ctx.drawImage(bgImage, 0, 0);
  }
  if (heroReady) {
    ctx.drawImage(heroImage, hero.x, hero.y);
  }
};

//Game loop
var main = function () {
  var now = Date.now();
  var delta = now - then;

  update(delta / 1000);
  render();

  then = now;

  // Request to do this again ASAP
  requestAnimationFrame(main);
};

//Cross-browser support for requestAnimationFrame
var w = window;
requestAnimationFrame = w.requestAnimationFrame || w.webkitRequestAnimationFrame || w.msRequestAnimationFrame || w.mozRequestAnimationFrame;

//Let's play this game!
var then = Date.now();
reset();
main();
</code></pre>
  </script>
</body>
</html>
HTML Platformer Game Code: Create Your Own 2D Adventure

原文地址: https://www.cveoy.top/t/topic/lnRS 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录