采用面向对象思想设计超级马里奥游戏人物

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

游戏分析:

  1. 看看如何通过按钮来控制mario的位置
  2. 设计相关的对象(Mario x y ...)

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

素材

mario.css

.gamediv{  width: 500px;  height: 400px;  background-color: pink;
}  /*表格样式*/
.controlcenter{  width: 200px;  height: 200px;  border: 1px solid red;   text-align:center;
}  

mario.html 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>  <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />  <link rel="stylesheet" type="text/css" href="mario.css" />  <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();  //全局函数  function marioMove(direct){  switch(direct){  case 0:  //向上mario.move(direct);  break;  case 1:  //向右mario.move(direct);  break;  case 2: //向下mario.move(direct);                   break;  case 3:  //向左mario.move(direct);  break;  }  }  </script>  </head>  <body>  <div class="gamediv">  <img id="mymario" src="mario.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="向上" οnclick="mario.move(0)" /></td>  这样写也是可以的--><td><input type="button" value="向上" οnclick="marioMove(0)" /></td>  <td>**</td>  </tr>  <tr>  <td><input type="button" value="向左" οnclick="marioMove(3)"/></td>  <td>**</td>  <td><input type="button" value="向右" οnclick="marioMove(1)"/></td>  </tr>  <tr>  <td>**</td>  <td><input type="button" value="向下" οnclick="marioMove(2)"/></td>  <td>**</td>  </tr>  </table>  </body>
</html>  
程序基本实现了 向上,向左,向右,向下的要求

韩顺平 javascript教学视频_学习笔记17_js超级玛丽小游戏相关推荐

  1. 韩顺平 javascript教学视频_学习笔记34_js正则表达式详解

    内容介绍----正则表达式的详解 正则表达式对象: RegExp对象方法 我们来看一下RegExp对象都有哪些方法 例子不举了,很简单 String 对象与正则表达式有关的方法 这四个方法是属于Str ...

  2. 韩顺平 javascript教学视频_学习笔记20_多态经典案例_补讲闭包细节

    多态经典案例 经典案例,看代码: <html> <head> <script language="javascript"> function M ...

  3. Unity学习笔记-切水果小游戏第一发

    楼主学习Unity的时间有限,每天最多能抽出1小时看看,主要还是周末的时间了. 最近打算开发几个小游戏练练手.最简单的水果忍者就被我相中了,来吧,骚年,一起来一发. 先分析下切水果的几个要点: 1)手 ...

  4. 复旦大学python教学视频_学习使用各种计时工具_Python数据分析系列视频课程--学习Pandas_数据挖掘与分析视频-51CTO学院...

    Pandas包是基于Python平台的数据管理利器,已经成为了Python进行数据分析和挖掘时的数据基础平台和事实上的工业标准,学习其使用方法,是使用Python进行数据分析和数据挖掘的必备条件. 本 ...

  5. 黑马前端教学视频的学习笔记(三)

    JavaScript JavaScript基础 JavaScript: * 概念: 一门客户端脚本语言* 运行在客户端浏览器中的.每一个浏览器都有JavaScript的解析引擎* 脚本语言:不需要编译 ...

  6. 哔哩官方教学视频 TouchDesigner 学习笔记

    1.下载软件https://derivative.ca/download 2.注册账号https://derivative.ca/user/register 3.邮箱点击password激活链接 4. ...

  7. 黑马前端教学视频的学习笔记(二)

    HTML&CSS HTML标签:表单标签 CSS: HTML标签:表单标签 * 表单:* 概念:用于采集用户输入的数据的.用于和服务器进行交互.* form:用于定义表单的.可以定义一个范围, ...

  8. Unity学习笔记[一] RollBall小游戏

    目录 一.适配vs 二.初识Unity 2.1 unity核心模块 2.2 Unity基本操作和场景操作 2.3 世界坐标系和局部坐标系 2.4 工具栏 QWER 三.基础知识 3.1 基本组件 3. ...

  9. python购物街价格竞猜_Python学习笔记 - 数字竞猜小游戏

    知识点 Python判断字符串的主要用法:str.isalnum():所有字符都是数字或字母 str.isalpha():所有字符都是字母 str.isdigit():所有字符都是数字,并且为整型数字 ...

最新文章

  1. Eclipse使用技巧收集
  2. Throwable是java.lang包中一个专门用来处理异常的类
  3. js如何判断字符串里面是否含有某个字符串
  4. springboot使用TemplateEngine修改邮箱后发送验证码示例
  5. tez安装官方文档整理+翻译
  6. Python 基础入门--简介和环境配置
  7. Linux下的iscsi(设备的共享服务)
  8. 问答| 为何会采用倒车入库(侧方位停车)方式?
  9. 如何搭建企业数据平台
  10. 漫画Linux 并发、竞态、互斥锁、自旋锁、信号量
  11. 【bzoj3514】Codechef MARCH14 GERALD07加强版
  12. ubuntu skill
  13. 京东“百亿补贴”提前20小时上线,电商价格战开打; iPhone 15 Pro玻璃面板泄露;凹语言 0.5.0发布|极客头条
  14. RadiAnt DICOM Viewer CD/DVD -U盘版
  15. 交规考试通过,庆祝一下
  16. Unix操作系统设计第一章学习
  17. 豆瓣《隐秘的角落》评论爬取
  18. Palindrome. Again Palindrome
  19. java判断身份证图片旋转角度_java实现图片角度旋转并获得图片信息
  20. java 生成证书 pkcs12_PKCS12 证书的生成及验证

热门文章

  1. android横竖屏幕的切换
  2. ViewPager、notifyDataSetChanged和观察者模式
  3. 字节跳动之所以成功,是因为管理模式牛逼!
  4. bzoj 3998 第K小子串
  5. 高斯消元法python实现
  6. 成功解决“Connection failed”错误
  7. 修改家中的WiFi密码
  8. 电脑服务器出现内存错误的信息,内存异常会出现什么问题
  9. 2021.03.03循环建立储存矩阵,或者是操作矩阵像素
  10. python制作程序菜单,Python 开发:制作一个简易的点菜系统(附源码)