韩顺平 javascript教学视频_学习笔记17_js超级玛丽小游戏
采用面向对象思想设计超级马里奥游戏人物
怎么用通过按键,来控制图片的位置
这个小游戏,用面向对象会很方便,不用面向对象会很麻烦很麻烦,比如以后要讲解的坦克大战的游戏,要是用纯的面向过程或函数式的方式写,那维护起来会非常的麻烦。
游戏分析:
- 看看如何通过按钮来控制mario的位置
- 设计相关的对象(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;
}
<!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超级玛丽小游戏相关推荐
- 韩顺平 javascript教学视频_学习笔记34_js正则表达式详解
内容介绍----正则表达式的详解 正则表达式对象: RegExp对象方法 我们来看一下RegExp对象都有哪些方法 例子不举了,很简单 String 对象与正则表达式有关的方法 这四个方法是属于Str ...
- 韩顺平 javascript教学视频_学习笔记20_多态经典案例_补讲闭包细节
多态经典案例 经典案例,看代码: <html> <head> <script language="javascript"> function M ...
- Unity学习笔记-切水果小游戏第一发
楼主学习Unity的时间有限,每天最多能抽出1小时看看,主要还是周末的时间了. 最近打算开发几个小游戏练练手.最简单的水果忍者就被我相中了,来吧,骚年,一起来一发. 先分析下切水果的几个要点: 1)手 ...
- 复旦大学python教学视频_学习使用各种计时工具_Python数据分析系列视频课程--学习Pandas_数据挖掘与分析视频-51CTO学院...
Pandas包是基于Python平台的数据管理利器,已经成为了Python进行数据分析和挖掘时的数据基础平台和事实上的工业标准,学习其使用方法,是使用Python进行数据分析和数据挖掘的必备条件. 本 ...
- 黑马前端教学视频的学习笔记(三)
JavaScript JavaScript基础 JavaScript: * 概念: 一门客户端脚本语言* 运行在客户端浏览器中的.每一个浏览器都有JavaScript的解析引擎* 脚本语言:不需要编译 ...
- 哔哩官方教学视频 TouchDesigner 学习笔记
1.下载软件https://derivative.ca/download 2.注册账号https://derivative.ca/user/register 3.邮箱点击password激活链接 4. ...
- 黑马前端教学视频的学习笔记(二)
HTML&CSS HTML标签:表单标签 CSS: HTML标签:表单标签 * 表单:* 概念:用于采集用户输入的数据的.用于和服务器进行交互.* form:用于定义表单的.可以定义一个范围, ...
- Unity学习笔记[一] RollBall小游戏
目录 一.适配vs 二.初识Unity 2.1 unity核心模块 2.2 Unity基本操作和场景操作 2.3 世界坐标系和局部坐标系 2.4 工具栏 QWER 三.基础知识 3.1 基本组件 3. ...
- python购物街价格竞猜_Python学习笔记 - 数字竞猜小游戏
知识点 Python判断字符串的主要用法:str.isalnum():所有字符都是数字或字母 str.isalpha():所有字符都是字母 str.isdigit():所有字符都是数字,并且为整型数字 ...
最新文章
- Android GLSurfaceView.Renderer 类 onDrawFrame 方法的刷新机制
- Linux下C编程入门(7)
- MATLAB调试caffe,在MATLAB下调试Caffe
- solr7.4 centos7安装
- Windows下OpenSSL创建CA证书以及客户端和服务器端证书
- Android之SwipeRefreshLayout嵌套RecyclerView遇到的坑
- hao123电脑版主页_百度浏览器停更没关系,hao123才令人唏嘘!
- IntelliJ IDEA 如何从SVN导入项目 怎么部署 就是路劲和tomcat配置等等 步骤希望
- Android Studio下导出jar包和aar包
- 推荐一个可以减少开发量50%的插件!
- ASP.NET 3.5核心编程学习笔记(44):HTTP处理程序的编写之从数据库加载图像
- eclipse java字体大小设置_eclipse怎样设置java代码字体大小? 值得收藏
- 手把手教你通过PS给所需证件照进行换底色处理
- spurious wakeup虚假唤醒
- 为什么蚕宝宝很有钱?
- 如何在Ubuntu系统下装windows10双系统
- (二十一)资产(组合)的预期收益率和风险
- 南昌专门学计算机的技校,2019南昌技校计算机专业都学什么有哪些专业-江西技校都有什么专...
- SSO单点登录系统设计,数据库设计文档
- Seq2seq - End2end