<!DOCTYPE html>
<html>
  <head>
    <title>Mario Game</title>
  </head>
  <body>
    <canvas id='game' width='640' height='480'></canvas>
    <script>
      // Create the canvas
      var canvas = document.getElementById('game');
      var ctx = canvas.getContext('2d');
<pre><code>  // Background image
  var bgReady = false;
  var bgImage = new Image();
  bgImage.onload = function () {
    bgReady = true;
  };
  bgImage.src = 'images/background.png';

  // Hero image
  var heroReady = false;
  var heroImage = new Image();
  heroImage.onload = function () {
    heroReady = true;
  };
  heroImage.src = 'images/hero.png';

  // Monster image
  var monsterReady = false;
  var monsterImage = new Image();
  monsterImage.onload = function () {
    monsterReady = true;
  };
  monsterImage.src = 'images/monster.png';

  // Game objects
  var hero = {
    speed: 256 // movement in pixels per second
  };
  var monster = {};
  var monstersCaught = 0;

  // Handle keyboard controls
  var keysDown = {};

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

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

  // Reset the game when the player catches a monster
  var reset = function () {
    hero.x = canvas.width / 2;
    hero.y = canvas.height / 2;

    // Throw the monster somewhere on the screen randomly
    monster.x = 32 + (Math.random() * (canvas.width - 64));
    monster.y = 32 + (Math.random() * (canvas.height - 64));
  };

  // 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;
    }

    // Are they touching?
    if (
      hero.x &lt;= (monster.x + 32)
      &amp;&amp; monster.x &lt;= (hero.x + 32)
      &amp;&amp; hero.y &lt;= (monster.y + 32)
      &amp;&amp; monster.y &lt;= (hero.y + 32)
    ) {
      ++monstersCaught;
      reset();
    }
  };

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

    if (heroReady) {
      ctx.drawImage(heroImage, hero.x, hero.y);
    }

    if (monsterReady) {
      ctx.drawImage(monsterImage, monster.x, monster.y);
    }

    // Score
    ctx.fillStyle = 'rgb(250, 250, 250)';
    ctx.font = '24px Helvetica';
    ctx.textAlign = 'left';
    ctx.textBaseline = 'top';
    ctx.fillText('Goblins caught: ' + monstersCaught, 32, 32);
  };

  // The main 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();
&lt;/script&gt;
</code></pre>
  </body>
</html>
Mario Game HTML Code:  Create Your Own Mario Game with JavaScript

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

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