js实现超级玛丽小游戏


Posted in Javascript onMarch 18, 2020

本文实例为大家分享了js超级玛丽小游戏的具体代码,供大家参考,具体内容如下

js实现超级玛丽小游戏

怎么用通过按键,来控制图片的位置
这个小游戏,用面向对象会很方便,不用面向对象会很麻烦很麻烦,比如以后要讲解的坦克大战的游戏,要是用纯的面向过程或函数式的方式写,那维护起来会非常的麻烦。 

游戏分析:

看看如何通过按钮来控制mario的位置

设计相关的对象(Mario x y ...)

onclick属性:当用户点击某个对象时调用的事件句柄 

素材

js实现超级玛丽小游戏

代码在目录:超级玛利亚.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>

js实现超级玛丽小游戏

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
jQuery+ajax实现顶一下,踩一下效果
Jul 17 Javascript
javascript scrollTop正解使用方法
Nov 14 Javascript
js中的事件捕捉模型与冒泡模型实例分析
Jan 10 Javascript
Javascript中3个需要注意的运算符
Apr 02 Javascript
JavaScript中数据类型转换总结
Dec 25 Javascript
Jil,高效的json序列化和反序列化库
Feb 15 Javascript
JavaScript创建防篡改对象的方法分析
Dec 30 Javascript
vue-router实现嵌套路由的讲解
Jan 19 Javascript
jQuery实现颜色打字机的完整代码
Mar 19 jQuery
js通过canvas生成图片缩略图
Oct 02 Javascript
Vue-Ant Design Vue-普通及自定义校验实例
Oct 24 Javascript
详解Vue项目的打包方式(生成dist文件)
Jan 18 Vue.js
vue 封装 Adminlte3组件的实现
Mar 18 #Javascript
JavaScript仿京东秒杀倒计时
Mar 17 #Javascript
JavaScript写个贪吃蛇小游戏(超详细)
Mar 17 #Javascript
JS+CSS+HTML实现“代码雨”类似黑客帝国文字下落效果
Mar 17 #Javascript
js实现简单点赞操作
Mar 17 #Javascript
vue+ESLint 配置保存 自动格式化代码
Mar 17 #Javascript
HTML+JS实现“代码雨”效果源码(黑客帝国文字下落效果)
Mar 17 #Javascript
You might like
PHP 5.0 Pear安装方法
2006/12/06 PHP
php版微信数据统计接口用法示例
2016/10/12 PHP
Js+XML 操作
2006/09/20 Javascript
在textarea文本域中显示HTML代码的方法
2007/03/06 Javascript
JS 无限级 Select效果实现代码(json格式)
2011/08/30 Javascript
分享20多个很棒的jQuery 文件上传插件或教程
2011/09/04 Javascript
jquery中each方法示例和常用选择器
2014/07/08 Javascript
jquery实现具有收缩功能的垂直导航菜单
2016/02/16 Javascript
JQuery+EasyUI轻松实现步骤条效果
2016/02/22 Javascript
Angularjs中的事件广播 —全面解析$broadcast,$emit,$on
2016/05/17 Javascript
浅谈JavaScript中小数和大整数的精度丢失
2016/05/31 Javascript
JS for...in 遍历语句用法实例分析
2016/08/24 Javascript
从零学习node.js之详解异步控制工具async(八)
2017/02/27 Javascript
JS实现自动轮播图效果(自适应屏幕宽度+手机触屏滑动)
2017/06/19 Javascript
JS实现普通轮播图特效
2020/01/01 Javascript
解决element-ui里的下拉多选框 el-select 时,默认值不可删除问题
2020/08/14 Javascript
写一个Vue loading 插件
2020/11/09 Javascript
[01:25]DOTA2超级联赛专访iG 将调整状态找回自己
2013/06/05 DOTA
对pandas的dataframe绘图并保存的实现方法
2017/08/05 Python
Python基于hashlib模块的文件MD5一致性加密验证示例
2018/02/10 Python
在python中用print()输出多个格式化参数的方法
2019/07/16 Python
Python datetime模块使用方法小结
2020/06/18 Python
法国珠宝店:CLEOR
2017/01/29 全球购物
菲律宾最大的网上花店和礼品店:PhilFlower.com
2018/02/09 全球购物
波兰运动鞋网上商店:e-Sporting
2018/02/16 全球购物
美国家居装饰网上商店:Lulu & Georgia
2019/09/14 全球购物
TCP协议通讯的过程和步骤是什么
2015/10/18 面试题
体育学院毕业生自荐信
2013/11/03 职场文书
分公司经理任命书
2014/06/05 职场文书
终止劳动合同协议书
2014/10/05 职场文书
安全生产先进个人事迹材料
2014/12/30 职场文书
悬崖上的金鱼姬观后感
2015/06/15 职场文书
2019年共青团工作条例最新版
2019/11/12 职场文书
Redis6.0搭建集群Redis-cluster的方法
2021/05/08 Redis
Python实现简单的俄罗斯方块游戏
2021/09/25 Python
《进击的巨人》新联动CM 兵长强势出击兽巨人
2022/04/05 日漫