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网络游戏-(模拟城市webgame)提供的一些例子下载
Oct 14 Javascript
Extjs4.0设置Ext.data.Store传参的请求方式(默认为GET)
Apr 02 Javascript
用js实现输入提示(自动完成)的实例代码
Jun 14 Javascript
JS中使用sort结合localeCompare实现中文排序实例
Jul 23 Javascript
Easyui form combobox省市区三级联动
Jan 13 Javascript
jQuery添加options点击事件并传值实例代码
May 18 Javascript
JS中如何比较两个Json对象是否相等实例代码
Jul 13 Javascript
轻松实现js选项卡切换效果
Sep 24 Javascript
Angular CLI在Angular项目中如何使用scss详解
Apr 10 Javascript
vue路由 遍历生成复数router-link的例子
Oct 30 Javascript
react组件基本用法示例小结
Apr 27 Javascript
微信小程序实现底部弹出模态框
Nov 18 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
ezSQL PHP数据库操作类库
2010/05/16 PHP
一个图片地址分解程序(用于PHP小偷程序)
2014/08/23 PHP
Yii2实现log输出到file及database的方法
2016/11/12 PHP
PHP使用Redis长连接的方法详解
2018/02/12 PHP
广告显示判断
2006/08/31 Javascript
理解JavaScript中的事件
2006/09/23 Javascript
js jquery做的图片连续滚动代码
2008/01/06 Javascript
基于JQuery的密码强度验证代码
2010/03/01 Javascript
利用jq让你的div居中的好方法分享
2013/11/21 Javascript
js 针对html DOM元素操作等经验累积
2014/03/11 Javascript
JavaScript中的函数重载深入理解
2014/08/04 Javascript
分享一则JavaScript滚动条插件源码
2015/03/03 Javascript
BootStrap.css 在手机端滑动时右侧出现空白的原因及解决办法
2016/06/07 Javascript
ionic中列表项增加和删除的实现方法
2017/01/22 Javascript
JS中图片压缩的方法小结
2017/11/14 Javascript
Vue中&quot;This dependency was not found&quot;问题的解决方法
2018/06/19 Javascript
深入理解Vue 的钩子函数
2018/09/05 Javascript
浅谈vue后台管理系统权限控制思考与实践
2018/12/19 Javascript
vue.js实现二级菜单效果
2019/10/19 Javascript
微信小程序实现手指拖动选项排序
2020/04/22 Javascript
vue 授权获取微信openId操作
2020/11/13 Javascript
python操作redis的方法
2015/07/07 Python
如何用itertools解决无序排列组合的问题
2017/05/18 Python
Python将DataFrame的某一列作为index的方法
2018/04/08 Python
借助Paramiko通过Python实现linux远程登陆及sftp的操作
2020/03/16 Python
Django数据结果集序列化并展示实现过程
2020/04/22 Python
详解Pandas 处理缺失值指令大全
2020/07/30 Python
解决PDF 转图片时丢文字的一种可能方式
2021/03/04 Python
CSS3实现水平居中、垂直居中、水平垂直居中的实例代码
2020/02/27 HTML / CSS
北美个性化礼品商店:Things Remembered
2018/06/12 全球购物
const和static readonly区别
2013/05/20 面试题
建筑专业毕业生求职信
2014/09/30 职场文书
七年级地理教学计划
2015/01/22 职场文书
2015年挂职锻炼个人总结
2015/10/22 职场文书
大学生安全教育心得体会
2016/01/15 职场文书
SQL bool盲注和时间盲注详解
2022/07/23 SQL Server