例子:js超级玛丽小游戏
韩顺平_轻松搞定网页设计(html+css+javascript)_第34讲_js超级玛丽小游戏_学习笔记_源代码图解_PPT文档整理
采用面向对象思想设计超级马里奥游戏人物(示意图)
怎么用通过按键,来控制图片的位置
这个小游戏,用面向对象会很方便,不用面向对象会很麻烦很麻烦,比如以后要讲解的坦克大战的游戏,要是用纯的面向过程或函数式的方式写,那维护起来会非常的麻烦。
游戏分析:
(1)看看如何通过按钮来控制mario的位置
(2)设计相关的对象(Mario x y ...)
Event对象
onclick属性:当用户点击某个对象时调用的事件句柄
素材

mario.css
- .gamediv{
- width: 500px;
- height: 400px;
- pink;
- }
- /*表格样式*/
- .controlcenter{
- width: 200px;
- height: 200px;
- border: 1px solid red;
- }
.gamediv{
width: 500px;
height: 400px;
background-color: pink;
}
/*表格样式*/
.controlcenter{
width: 200px;
height: 200px;
border: 1px solid red;
}
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 1:
- //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;
- }
- }
- }
- //创建Mario对象
- var mario=new Mario();
- //全局函数
- function marioMove(direct){
- switch(direct){
- case 1:
- mario.move(direct);
- break;
- case 0:
- break;
- case 2:
- break;
- case 3:
- break;
- }
- }
- </script>
- </head>
- <body>
- <div class="gamediv">
- <img id="mymario" src="mario.jpg" 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="marioMove(1)" /></td>
- <td>**</td>
- </tr>
- <tr>
- <td><input type="button" value="←←" /></td>
- <td>**</td>
- <td><input type="button" value="→→" /></td>
- </tr>
- <tr>
- <td>**</td>
- <td><input type="button" value="↓↓" /></td>
- <td>**</td>
- </tr>
- </table>
- </body>
- </html>

再要求:
(1)mario碰到边界给一个提示
例子:js超级玛丽小游戏的更多相关文章
- Creator仿超级玛丽小游戏源码分享
Creator仿超级玛丽小游戏源码分享 之前用Cocos Creator 做的一款仿超级玛丽的游戏,使用的版本为14.2 ,可以直接打包为APK,现在毕设已经完成,游戏分享出来,大家一起学习进步.特别 ...
- pixi.js 微信小游戏 入手
pixi是什么?一款h5游戏引擎 优点:简单简洁性能第一 缺点:大多数用的国产三大引擎,pixi资料少,工具少, 为什么学,装逼 用pixi开发小游戏行吗? 行.但要简单处理下 下载官网上的 weap ...
- JS写小游戏(一):游戏框架
前言 前一阵发现一个不错的网站,都是一些用html5+css+js写的小游戏,于是打算学习一番,写下这个系列博客主要是为了加深理解,当然也有一些个人感悟,如果英文好可以直接Click Here. 概述 ...
- three.js 微信小游戏
最近在 https://classroom.udacity.com/courses/cs291 学习了一些 3D 引擎和 three.js 的知识 把 three.js 弄到微信小游戏里,先随便跑一跑 ...
- js消除小游戏(极简版)
js小游戏极简版 (1) 基础布局 <div class = "box"> <p></p> <div class="div&qu ...
- JS扫雷小游戏
HTML代码 <title> 扫雷 </title> <!-- ondragstart:防拖拽生成新页面 oncontextmenu:屏蔽右键菜单--> <b ...
- 使用JS制作小游戏贪吃蛇
先看效果图: 过程如下: 1.首先创建一张画布地图<div class="map"> </div>: 2.创建食物的自调用函数 (function (){ ...
- 用原生js写小游戏--Flappy Bird
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- js石头剪刀布小游戏
代码: <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title ...
随机推荐
- 【POJ2823】Sliding Window
http://poj.org/problem?id=2823 题意:你有一个长度n的序列,分别询问[1,k],[2,k+1],[3,k+2],...,[n-k+1,n]这n-k+1个区间的最大值和最小 ...
- Progressive Web Apps入门
PC和Mobile开发技术演进 PC方向,从客户端到富客户端,到现在广泛使用的Web. 移动方向,目前主要还是原生应用和Mobile Web,PWA相关技术是未来发展方向. PWA的概念 ...
- HttpClient4.2 Fluent API学习
相比于HttpClient 之前的版本号,HttpClient 4.2 提供了一组基于流接口(fluent interface)概念的更易使用的API,即Fluent API. 为了方便使用,Flue ...
- C++11新特性应用--介绍几个新增的便利算法(不更改容器中元素顺序的算法)
总所周知.C++ STL中有个头文件,名为algorithm.即算法的意思. The header<algorithm>defines a collection of functions ...
- 【日常学习】【IDA*】codevs2449 骑士精神题解
题目描写叙述 Description 在一个5×5的棋盘上有12个白色的骑士和12个黑色的骑士, 且有一个空位.在不论什么时候一个骑士都能依照骑士的走法(它能够走到和它横坐标相差为1.纵坐标相差为2或 ...
- [前端] jquery验证手机号、身份证号、中文名称
验证: 中文姓名.手机号.身份证和地址 HTML(表单): <form action=""> <div class="form-group"& ...
- 从0引入 ASP.NET Identity Core
原文出自Rui Figueiredo的博客,原文链接<ASP.NET Identity Core From Scratch> 译者注:这篇博文发布时正值Asp.Net Core 1.1 时 ...
- 用泛型创建SqlServerHelper类实现增删改查(一)
使用泛型,可以构建对数据库单表的基本增删改查. 首先有一数据库 Test_SqlServerHelper ,有2表 接下来创建项目,对数据库进行增删改查. 直接贴代码:(SqlServerHelper ...
- 知乎APP---案例分析
产品: 这次我选择用来做案例分析的是--知乎. 知乎可以说是中文互联网最大的知识社交平台,拥有认真.专业和友善的独特气氛,分享用户间彼此的专业知识.经验和见解.因而在日常生活中,我用知乎搜索答案的概率 ...
- 自学Zabbix3.6.4-触发器triggers dependencies依赖关系
有时,一个主机的可用性取决于另一个主机.如果路由器坏了,某个路由器后面的服务器就会变得不可访问.对于两个主机都配置了触发器,您可能会收到两个主机的通知,而只有路由器是有罪的一方.这是主机之间的一些依赖 ...