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 相关文章推荐
js 获取浏览器高度和宽度值(多浏览器)
Sep 02 Javascript
js setattribute批量设置css样式
Nov 26 Javascript
JavaScript的单例模式 (singleton in Javascript)
Jun 11 Javascript
40个新鲜出炉的jQuery 插件和免费教程[上]
Jul 24 Javascript
jQuery队列操作方法实例
Jun 11 Javascript
jQuery修改class属性和CSS样式整理
Jan 30 Javascript
JavaScript控制网页层收起和展开效果的方法
Apr 15 Javascript
jQuery实现的右下角广告窗体跟随效果示例
Sep 16 Javascript
jQuery获取this当前对象子元素对象的方法
Nov 29 Javascript
利用JS判断客户端类型你应该知道的四种方法
Dec 22 Javascript
在小程序开发中使用npm的方法
Oct 17 Javascript
微信小程序控制台提示warning:Now you can provide attr &quot;wx:key&quot; for a &quot;wx:for&quot; to improve performance解决方法
Feb 21 Javascript
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垃圾回收机制引用计数器概念分析
2013/06/24 PHP
Laravel5中contracts详解
2015/03/02 PHP
PHP使用flock实现文件加锁的方法
2015/07/01 PHP
php简单复制文件的方法
2016/05/09 PHP
php代码调试利器firephp安装与使用方法分析
2018/08/21 PHP
jquery关于图形报表的运用实现代码
2011/01/06 Javascript
js屏蔽鼠标键盘(右键/Ctrl+N/Shift+F10/F11/F5刷新/退格键)
2013/01/24 Javascript
iframe实用操作锦集
2014/04/22 Javascript
JavaScript点击按钮后弹出透明浮动层的方法
2015/05/11 Javascript
整理Javascript函数学习笔记
2015/12/01 Javascript
jQuery+JSON实现AJAX二级联动实例分析
2015/12/18 Javascript
Vue.js 2.0窥探之Virtual DOM到底是什么?
2017/02/10 Javascript
async/await与promise(nodejs中的异步操作问题)
2017/03/03 NodeJs
ES6模块化的import和export用法方法总结
2017/08/08 Javascript
浅谈webpack打包生成的bundle.js文件过大的问题
2018/02/22 Javascript
vue.js 底部导航栏 一级路由显示 子路由不显示的解决方法
2018/03/09 Javascript
JS实现select选中option触发事件操作示例
2018/07/13 Javascript
python中的全局变量用法分析
2015/06/09 Python
Python比较2个时间大小的实现方法
2018/04/10 Python
Python用字典构建多级菜单功能
2019/07/11 Python
程序员的七夕用30行代码让Python化身表白神器
2019/08/07 Python
win7下 python3.6 安装opencv 和 opencv-contrib-python解决 cv2.xfeatures2d.SIFT_create() 的问题
2019/10/24 Python
解决os.path.isdir() 判断文件夹却返回false的问题
2019/11/29 Python
python画环形图的方法
2020/03/25 Python
python利用opencv实现颜色检测
2021/02/23 Python
使用HTML5进行SVG矢量图形绘制的入门教程
2016/02/19 HTML / CSS
英国著名音像制品和图书游戏购物网站:Zavvi
2016/08/04 全球购物
一套SQL笔试题
2016/08/14 面试题
红领巾广播站广播稿
2014/02/01 职场文书
经典商业广告词
2014/03/13 职场文书
2014年监理工作总结范文
2014/11/17 职场文书
2014年组织委员工作总结
2014/12/01 职场文书
python 自动刷新网页的两种方法
2021/04/20 Python
详解Mysql和Oracle之间的误区
2021/05/18 MySQL
python状态机transitions库详解
2021/06/02 Python
新手入门Jvm-- JVM对象创建与内存分配机制
2021/06/18 Java/Android