JavaScript实现超级玛丽小游戏:面向对象设计与按键控制

作者:函数茶馆时间:2026-10-23 16:41:05浏览:496

本文通过JavaScript代码详解超级玛丽小游戏的实现过程。重点讲解如何利用面向对象思想设计Mario类,封装x、y坐标及移动方法。结合HTML DOM操作与onclick事件,演示如何通过按钮控制角色位置,并提供完整源码结构供参考学习。

JavaScript超级玛丽游戏实现概述

本文分享了一个使用JavaScript编写的超级玛丽小游戏完整代码示例,供读者参考学习。

JavaScript超级玛丽游戏实现概述

关于如何通过按键控制图片位置的问题,采用面向对象编程模式能显著简化开发流程。若不使用面向对象,而是采用纯面向过程或函数式写法,代码维护将变得极其繁琐,例如后续可能涉及的坦克大战游戏,其复杂度会成倍增加。

游戏设计与面向对象架构

游戏逻辑分析:

角色控制与DOM交互实现

核心功能之一是研究如何通过按钮交互来控制Mario角色的位置变化。

需要设计相关的对象模型,例如定义Mario类,包含x、y坐标属性及其他相关状态。

利用HTML元素的onclick属性,可以在用户点击特定对象时触发相应的事件处理函数。

游戏所需的图片素材资源。

JavaScript超级玛丽游戏实现概述

完整代码文件位于目录:超级玛利亚.html。


<html> 
 <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />  
 <style>
 
  .gamediv{ 
  width: 500px; 
  height: 400px; 
  background-color: pink; 
 
 } 
  
 
 /*表格样式*/ 
 .controlcenter{ 
  width: 200px; 
  height: 200px; 
  border: 1px solid red; 
  text-align:center; 
 
 } 
 
 </style> 
 
 <head> 
 
 <script language="javascript"> 
  //设计Mario类 
  function Mario(){ 
  this.x=0; 
  this.y=0; 
  //移动 顺时针 0->上 1->右 2->下 3->左 
  this.move=function(direct){ 
   switch(direct){ 
 
   case 0: //向上 
    //window.alert("mario 右移动"); 
    //这里为了改变 img的left 和top,我们需要得到 img元素。需要用到javascript的DOM编程。img 对象 
    var mymario=document.getElementById('mymario'); 
    //取出 img 的top值 
    //window.alert(mymario.style.top); 
 
    //怎样去掉50px的px 
    var top=mymario.style.top; 
    //px占据两个,即lenght-2 
    //window.alert(top.substr(0,top.length-2)); 
 
    //现在还是串,要转成数值才能加减 
    top=parseInt(top.substr(0,top.length-2)); 
 
    //window.alert(top); 
    mymario.style.top=(top-2)+"px"; //开始移动2px,看怎么拼接的,字符串和数值之间的转换 
 
    //此时mario就可以向下移动了,把上面的打印调试输出代码都注释掉 
 
    break; 
 
   case 1: //向右 
 
    var mymario=document.getElementById('mymario'); 
    var left=mymario.style.left; 
    left=parseInt(left.substr(0,left.length-2)); 
    mymario.style.left=(left+2)+"px"; 
    break; 
 
   case 2: //向下 
 
    var mymario=document.getElementById('mymario'); 
    var top=mymario.style.top; 
    top=parseInt(top.substr(0,top.length-2)); 
    mymario.style.top=(top+2)+"px"; 
    break; 
 
   case 3: //向左 
 
    var mymario=document.getElementById('mymario'); 
    var left=mymario.style.left; 
    left=parseInt(left.substr(0,left.length-2)); 
    mymario.style.left=(left-2)+"px"; 
    break; 
 
   } 
 
  } 
 
  } 
 
 
  //创建Mario对象 
  var mario=new Mario(); 
 
 </script> 
 </head> 
 <body> 
 
 <div class="gamediv"> 
  <img id="mymario" src="person.png" style="left:100px; top:50px; position:absolute;" /> <!--用到了绝对定位--> 
  </div> 
  <table border="1px" class="controlcenter"> 
   <tr > 
   <td colspan="3" >游戏键盘</td> 
  </tr> 
  <tr> 
   <td>**</td> 
   <td><input type="button" value="向上" onclick="mario.move(0)" /></td>
   <!-- <td><input type="button" value="向上" onclick="marioMove(0)" /></td> -->
   <td>**</td> 
  </tr> 
 
  <tr>
 
   <td><input type="button" value="向左" onclick="mario.move(3)" /> </td>
   <td>**</td> 
   <td><input type="button" value="向右" onclick="mario.move(1)" /> </td> 
  </tr> 
 
  <tr> 
   <td>**</td> 
   <td><input type="button" value="向下" onclick="mario.move(2)" /> </td>
   <td>**</td> 
 
  </tr> 
 
  </table> 
 </body> 
 
</html> 

JavaScript超级玛丽游戏实现概述

以上就是本文的全部内容,希望能为读者的学习提供有益帮助,也欢迎大家继续支持本站。

作者最新文章