原创javascript小游戏实现代码


Posted in Javascript onAugust 19, 2010

以下是代码:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> 
<title>jjb</title> 
<style type="text/css"> 
* { margin:0px; padding:0px;} 
#content{ width:800px; height:500px; position:absolute; left:10px; top:10px; background:url(bg.gif) repeat-x left top;} 
#scbox{width:100px; background:#000000; font-weight:bold; color:#FFFFFF; font-size:12px; line-height:22px; padding-left:10px;} 
#start{ position:absolute; left:215px; _left:190px; top:140px;} 
#life { height:22px; background:#009000; position:absolute; left:110px; top:0px;} 
#bottom { width:800px; height:44px; position:absolute; left:0; top:456px; background:#333; z-index:9;} 
#startbox { height:150px; position:absolute; left:260px; top:100px; background:#000000; color:#fff; font-size:12px; padding:10px;} 
#jia {font-size:40px; font-family:Verdana, Arial, Helvetica, sans-serif; color:#0099CC; position:absolute; z-index:1001;} 
#jian {font-size:40px; font-family:Verdana, Arial, Helvetica, sans-serif; color:#FF0000; position:absolute; z-index:1001;} 
</style> 
<script language="javascript"> 
(function (){ 
(new Image()).src = "38.gif"; 
(new Image()).src = "48.gif"; 
(new Image()).src = "bike.gif"; 
(new Image()).src = "bike2.gif"; 
(new Image()).src = "bg.gif"; 
})(); 
//缓存加载图片 
function $(id) {return document.getElementById(id);} 
var boxBaseAttr = new Object; 
boxBaseAttr = { 
width : "26px", 
height : "40px", 
position: "absolute", 
top : "30px", 
background : "url(38.gif) no-repeat center top", 
zIndex : 10 
}; 
var boxBaseAttr2 = new Object; 
boxBaseAttr2 = { 
width : "26px", 
height : "40px", 
position: "absolute", 
top : "30px", 
background : "url(48.gif) no-repeat center top", 
zIndex : 10 
}; var ele = new Object; 
ele = { 
div : document.createElement("div"), 
span: function (){ 
var sp = document.createElement("span"); 
for(var s in boxBaseAttr) { 
sp.style[s] = boxBaseAttr[s]; 
} 
sp.setAttribute("type", "good"); 
return sp; 
}, 
badspan : function (){ 
var sp2 = document.createElement("span"); 
for(var s in boxBaseAttr2) { 
sp2.style[s] = boxBaseAttr2[s]; 
} 
sp2.setAttribute("type", "bad"); 
return sp2; 
} 
}; 
var sco = 0, lifeWidth = 690, lifes = true; 
var bar = { 
getScore : function () { 
sco += 10; 
$("sc").innerHTML = sco; 
}, 
loseScore : function (){ 
sco -= 10; 
$("sc").innerHTML = sco; 
}, 
life : function (){ 
var life = $("life"); 
var sl = setInterval(function(){ 
if(lifeWidth < 23) { 
lifes = false; 
clearInterval(sl); 
return; 
} 
else { 
lifeWidth -= 23; 
life.style.width = lifeWidth + "px"; 
} 
},1000); 
} 
}; 
var fire = { 
init : function (o, x, y) { 
o.style.display = "block"; 
o.style.left = x + "px"; 
o.style.top = y + "px"; 
var fs = setInterval(function(){ 
if (y >= 280) { 
y -= 10; 
o.style.top = y + "px"; 
} 
else{ 
clearInterval(fs); 
o.style.display = "none"; 
} 
},10); 
} 
}; 
/*-- game begin --*/ 
function game() { 
var content = $("content"), x = 0; 
var pigBaseAttr = new Object; 
pigBaseAttr = { 
background : "url(bike.gif) no-repeat center top", 
position : "absolute", 
top : content.clientHeight-44+"px", 
left : (content.clientWidth - 45)/2+"px", 
width : "45px", 
height : "44px", 
zIndex : 1000 
}; 
var pig = ele.div.cloneNode(true); 
for(var s in pigBaseAttr) { 
pig.style[s] = pigBaseAttr[s]; 
} 
content.appendChild(pig); 
/* -- 小猪移动功能begin--*/ 
content.onmousemove = function (event){ 
var e = event || window.event; 
if ( x > e.clientX) { 
//pig.style.width = "110px"; 
pig.style.background = "url(bike.gif) no-repeat left top"; 
if (e.clientX -45 < 0) { 
pig.style.left = "0px"; 
} else if(e.clientX + 45 > 800) { 
pig.style.left = "755px"; 
} 
else { 
pig.style.left = (e.clientX - 45)+"px"; 
} 
} 
else if (x < e.clientX) { 
//pig.style.width = "110px"; 
pig.style.background = "url(bike2.gif) no-repeat right top"; 
if (e.clientX -45 < 0) { 
pig.style.left = "0px"; 
} else if(e.clientX + 45 > 800) { 
pig.style.left = "755px"; 
} 
else { 
pig.style.left = (e.clientX - 45)+"px"; 
} 
} 
x = e.clientX; 
} 
/*-- 判断是否撞击,传入参数为box和content --*/ 
function meet(obox,parent) { 
var objX = obox.offsetLeft; 
var pigX = pig.offsetLeft; 
var boxType = obox.getAttribute("type"); 
if (objX + 26 >= pigX && objX <= pigX + 45) { 
if (boxType == "good") { 
bar.getScore(); 
fire.init($("jia"), pigX, pig.offsetTop-30); 
} 
else if(boxType == "bad") { 
bar.loseScore(); 
fire.init($("jian"), pigX, pig.offsetTop-30); 
} 
obox.style.left = "-2000px"; 
} 
} 
/* -- 创建随机位置的金币 begin--*/ 
function createbox() { 
var box = ele.span(); 
var b = 30; 
var boxLeft = Math.floor(Math.random()*760);//产生随机距离 
box.style.left = boxLeft + "px"; 
content.appendChild(box); 
//box进入游戏界面,开始移动,并开始执行函数和pig比对是否撞击 
var st = setInterval(function (){ 
if (b < 460){ 
box.style.top = b + 5 + "px"; 
b += 5; 
if (b >= 416) { 
meet(box, content); 
} 
} 
else { 
content.removeChild(box); 
clearInterval(st); 
b = 30; 
} 
},5); 
} 
function createbadbox() { 
var box = ele.badspan(); 
var b = 30; 
var boxLeft = Math.floor(Math.random()*760);//产生随机距离 
box.style.left = boxLeft + "px"; 
content.appendChild(box); 
//box进入游戏界面,开始移动,并开始执行函数和pig比对是否撞击 
var st = setInterval(function (){ 
if (b < 460){ 
box.style.top = b + 5 + "px"; 
b += 5; 
if (b > 416) { 
meet(box, content); 
} 
} 
else { 
content.removeChild(box); 
clearInterval(st); 
b = 30; 
} 
},5); 
} 
bar.life(); 
/*-- 开始执行循环添加box函数 --*/ 
var xt = setInterval(function(){ 
if (lifes == false) { 
clearInterval(xt); 
alert("时间到,您的得分是:"+sco); 
lifeWidth = 690; 
lifes = true; 
sco = 0; 
$("startbox").style.display = "block"; 
$("start").value = "再玩一次"; 
content.removeChild(pig); 
}else{ 
createbox(); 
createbadbox(); 
} 
},500); 
} 
window.onload = function () { 
$("start").onclick = function () { 
$("startbox").style.display = "none"; 
new game(); 
} 
} 
</script> 
</head> 
<body> 
<div id="content"> 
<div id="startbox"> 
<p>游戏规则:</p> 
<p>(1) 你只有30秒的时间,用鼠标控制小猪左右移动;</p> 
<p>(2) 小猪接到<img src="38.gif" />女孩,加10分;</p> 
<p>(3) 小猪接到<img src="48.gif" />女孩,减10分;</p> 
<input type="button" id="start" value="开始游戏" /> 
</div> 
<div id="scbox">分数:<span id="sc">0</span></div> 
<div id="life" style="width:690px;"></div> 
<div id="bottom"></div> 
<div id="jia" style="display:none;">+10</div> 
<div id="jian" style="display:none;">-10</div> 
</div> 
</body> 
</html>

演示代码:/js/js_game/index.htm
代码打包下载
Javascript 相关文章推荐
js textarea自动增高并隐藏滚动条
Dec 16 Javascript
jQuery随便控制任意div隐藏的方法
Jun 28 Javascript
jquery实现省市select下拉框的替换(示例代码)
Feb 22 Javascript
javascript动态创建及删除元素的方法
Dec 22 Javascript
全面解析jQuery $(document).ready()和JavaScript onload事件
Jun 08 Javascript
JS实现Ajax的方法分析
Dec 20 Javascript
vue.js实现请求数据的方法示例
Feb 07 Javascript
Vue组件开发之LeanCloud带图形校验码的短信发送功能
Nov 07 Javascript
jQuery利用FormData上传文件实现批量上传
Dec 04 jQuery
vux-scroller实现移动端上拉加载功能过程解析
Oct 08 Javascript
jQuery实现小火箭返回顶部特效
Feb 03 jQuery
JS写滑稽笑脸运动效果
May 28 Javascript
jQuery与ExtJS之选择实例分析
Aug 19 #Javascript
JQuery跨Iframe选择实现代码
Aug 19 #Javascript
JQuery中each()的使用方法说明
Aug 19 #Javascript
jquery获取input的value问题说明
Aug 19 #Javascript
JavaScript开发规范要求(规范化代码)
Aug 16 #Javascript
JavaScript学习历程和心得小结
Aug 16 #Javascript
javascript中的prototype属性使用说明(函数功能扩展)
Aug 16 #Javascript
You might like
详解PHP防止直接访问.php 文件的实现方法
2017/07/28 PHP
jQuery下的动画处理总结
2013/10/10 Javascript
window.open()详解及浏览器兼容性问题示例探讨
2014/05/29 Javascript
一个小例子解释如何来阻止Jquery事件冒泡
2014/07/17 Javascript
Javascript中的五种数据类型详解
2014/12/26 Javascript
JavaScript中的值类型详细介绍
2014/12/29 Javascript
使用CoffeeScrip优美方式编写javascript代码
2015/10/28 Javascript
DataTables+BootStrap组合使用Ajax来获取数据并且动态加载dom的方法(排序,过滤,分页等)
2016/11/09 Javascript
localStorage实现便签小程序
2016/11/28 Javascript
浅谈JavaScript的自动垃圾收集机制
2016/12/15 Javascript
jQuery Validate验证表单时多个name相同的元素只验证第一个的解决方法
2016/12/24 Javascript
js自定义瀑布流布局插件
2017/05/16 Javascript
Jquery获取radio选中值实例总结
2019/01/17 jQuery
vue实现局部刷新的实现示例
2019/04/16 Javascript
JS实现的贪吃蛇游戏案例详解
2019/05/01 Javascript
详解mpvue中使用vant时需要注意的onChange事件的坑
2019/05/16 Javascript
写一个Vue loading 插件
2020/11/09 Javascript
[01:08:30]DOTA2-DPC中国联赛 正赛 Ehome vs Elephant BO3 第一场 2月28日
2021/03/11 DOTA
python定时检查启动某个exe程序适合检测exe是否挂了
2013/01/21 Python
python装饰器使用方法实例
2013/11/21 Python
python 3调用百度OCR API实现剪贴板文字识别
2018/09/04 Python
Python封装成可带参数的EXE安装包实例
2019/08/24 Python
Windows10下 python3.7 安装 facenet的教程
2019/09/10 Python
Python爬虫实现使用beautifulSoup4爬取名言网功能案例
2019/09/15 Python
numpy:np.newaxis 实现将行向量转换成列向量
2019/11/30 Python
django ajax发送post请求的两种方法
2020/01/05 Python
Django关于admin的使用技巧和知识点
2020/02/10 Python
美的官方商城:Midea
2016/09/14 全球购物
学年自我鉴定
2014/01/16 职场文书
幼儿园小班评语大全
2014/04/17 职场文书
装饰工程师岗位职责
2014/06/08 职场文书
捐资助学感谢信
2015/01/21 职场文书
军训后的感想
2015/08/07 职场文书
心理健康教育主题班会
2015/08/13 职场文书
工作建议书范文
2019/07/08 职场文书
hive数据仓库新增字段方法
2022/06/25 数据库