javascript 实现的多浏览器支持的贪吃蛇webgame
2008-01-19 00:00
921 查看
写的太累了 ,写了3个小时!大家可以玩玩看
界面不美,尽管批
www.jb51.net 脚本之家 贪吃蛇
//获取新生元素位置
var bucunzai=true;//记录新元素是不是移动
var xinkx;
var xinky;
//页面载入后k元素定位
function lo(){
var objectp=document.getElementById("k")
objectp.style.left="250px"
objectp.style.top="250px"
//K元素最终样式代码
k_zz=objectp.currentStyle?document.getElementById("k").currentStyle:document.defaultView.getComputedStyle(objectp,null);
}
//记录位置的数组
var k_x=new Array()
var k_y=new Array()
//记录蛇的长度
var k_number=0
//方向键函数
document.onkeydown=pmove;
var fx=0//获取上一次的按键直
function pmove(){
if(bucunzai){
xin();
bucunzai=false;
}
objectp=document.getElementById("k")
kcode=window.event?window.event:arguments[0];
if(kcode.keyCode==39&&fx!=39&&fx!=37){
fx=kcode.keyCode;
try{
clearInterval(kbottom);
}
catch(e){
}
try{
clearInterval(kright);
}
catch(e){
}
try{
clearInterval(ktop);
}
catch(e){
}
try{
clearInterval(kleft);
}
catch(e){
}
kleft=setInterval(function(){if(parseInt(objectp.style.left)>=475){alert("超出了");clearInterval(kleft);}else{if(k_x.length>=400){k_x.shift();k_y.shift();};k_x[k_x.length]=k_zz.left;k_y[k_y.length]=k_zz.top;objectp.style.left=(parseInt(objectp.style.left)+25)+"px";}if(k_zz.left==xinkx&&k_zz.top==xinky){k_number++;xin();}k_kmove();},100)
}
if(kcode.keyCode==37&&fx!=39&&fx!=37){
fx=kcode.keyCode;
try{
clearInterval(kbottom);
}
catch(e){
}
try{
clearInterval(kright);
}
catch(e){
}
try{
clearInterval(ktop);
}
catch(e){
}
try{
clearInterval(kleft);
}
catch(e){
}
kright=setInterval(function(){if(parseInt(objectp.style.left)=400){k_x.shift();k_y.shift();};k_x[k_x.length]=k_zz.left;k_y[k_y.length]=k_zz.top;objectp.style.left=(parseInt(objectp.style.left)-25)+"px";}if(k_zz.left==xinkx&&k_zz.top==xinky){k_number++;xin();}k_kmove();},100)
}
if(kcode.keyCode==40&&fx!=40&&fx!=38){
fx=kcode.keyCode;
try{
clearInterval(kbottom);
}
catch(e){
}
try{
clearInterval(kright);
}
catch(e){
}
try{
clearInterval(ktop);
}
catch(e){
}
try{
clearInterval(kleft);
}
catch(e){
}
kbottom=setInterval(function(){if(parseInt(objectp.style.top)>=475){alert("超出了");clearInterval(kbottom);}else{if(k_x.length>=400){k_x.shift();k_y.shift();};k_x[k_x.length]=k_zz.left;k_y[k_y.length]=k_zz.top;objectp.style.top=(parseInt(objectp.style.top)+25)+"px";}if(k_zz.left==xinkx&&k_zz.top==xinky){k_number++;xin();}k_kmove();},100)
}
if(kcode.keyCode==38&&fx!=40&&fx!=38){
fx=kcode.keyCode;
try{
clearInterval(kbottom);
}
catch(e){
}
try{
clearInterval(kright);
}
catch(e){
}
try{
clearInterval(ktop);
}
catch(e){
}
try{
clearInterval(kleft);
}
catch(e){
}
ktop=setInterval(function(){if(parseInt(objectp.style.top)=400){k_x.shift();k_y.shift();};k_x[k_x.length]=k_zz.left;k_y[k_y.length]=k_zz.top;objectp.style.top=(parseInt(objectp.style.top)-25)+"px";}if(k_zz.left==xinkx&&k_zz.top==xinky){k_number++;xin();}k_kmove();},100)
}
}
//生成新的元素代码
function xin(){
var xinkleft=parseInt(Math.random()*20)*25+"px";
var xinktop=parseInt(Math.random()*20)*25+"px";
var xinkcolor1=parseInt(Math.random()*14).toString(16)
var xinkcolor2=parseInt(Math.random()*14).toString(16)
var xinkcolor3=parseInt(Math.random()*14).toString(16)
var xinkcolor4=parseInt(Math.random()*14).toString(16)
var xinkcolor5=parseInt(Math.random()*14).toString(16)
var xinkcolor6=parseInt(Math.random()*14).toString(16)
var xink=document.createElement("div")
xink.id="k"+k_number
xink.className="xin"
xink.style.left=xinkleft
xink.style.top=xinktop
xink.style.backgroundColor="#"+xinkcolor1+xinkcolor2+xinkcolor3+xinkcolor4+xinkcolor5+xinkcolor6
var pp=document.getElementById("p")
pp.appendChild(xink)
xinkx=xinkleft
xinky=xinktop
}
//新的元素跟随移动函数
function k_kmove(){
if(k_number==0){}
else{
for(var i=0;i
界面不美,尽管批
www.jb51.net 脚本之家 贪吃蛇
//获取新生元素位置
var bucunzai=true;//记录新元素是不是移动
var xinkx;
var xinky;
//页面载入后k元素定位
function lo(){
var objectp=document.getElementById("k")
objectp.style.left="250px"
objectp.style.top="250px"
//K元素最终样式代码
k_zz=objectp.currentStyle?document.getElementById("k").currentStyle:document.defaultView.getComputedStyle(objectp,null);
}
//记录位置的数组
var k_x=new Array()
var k_y=new Array()
//记录蛇的长度
var k_number=0
//方向键函数
document.onkeydown=pmove;
var fx=0//获取上一次的按键直
function pmove(){
if(bucunzai){
xin();
bucunzai=false;
}
objectp=document.getElementById("k")
kcode=window.event?window.event:arguments[0];
if(kcode.keyCode==39&&fx!=39&&fx!=37){
fx=kcode.keyCode;
try{
clearInterval(kbottom);
}
catch(e){
}
try{
clearInterval(kright);
}
catch(e){
}
try{
clearInterval(ktop);
}
catch(e){
}
try{
clearInterval(kleft);
}
catch(e){
}
kleft=setInterval(function(){if(parseInt(objectp.style.left)>=475){alert("超出了");clearInterval(kleft);}else{if(k_x.length>=400){k_x.shift();k_y.shift();};k_x[k_x.length]=k_zz.left;k_y[k_y.length]=k_zz.top;objectp.style.left=(parseInt(objectp.style.left)+25)+"px";}if(k_zz.left==xinkx&&k_zz.top==xinky){k_number++;xin();}k_kmove();},100)
}
if(kcode.keyCode==37&&fx!=39&&fx!=37){
fx=kcode.keyCode;
try{
clearInterval(kbottom);
}
catch(e){
}
try{
clearInterval(kright);
}
catch(e){
}
try{
clearInterval(ktop);
}
catch(e){
}
try{
clearInterval(kleft);
}
catch(e){
}
kright=setInterval(function(){if(parseInt(objectp.style.left)=400){k_x.shift();k_y.shift();};k_x[k_x.length]=k_zz.left;k_y[k_y.length]=k_zz.top;objectp.style.left=(parseInt(objectp.style.left)-25)+"px";}if(k_zz.left==xinkx&&k_zz.top==xinky){k_number++;xin();}k_kmove();},100)
}
if(kcode.keyCode==40&&fx!=40&&fx!=38){
fx=kcode.keyCode;
try{
clearInterval(kbottom);
}
catch(e){
}
try{
clearInterval(kright);
}
catch(e){
}
try{
clearInterval(ktop);
}
catch(e){
}
try{
clearInterval(kleft);
}
catch(e){
}
kbottom=setInterval(function(){if(parseInt(objectp.style.top)>=475){alert("超出了");clearInterval(kbottom);}else{if(k_x.length>=400){k_x.shift();k_y.shift();};k_x[k_x.length]=k_zz.left;k_y[k_y.length]=k_zz.top;objectp.style.top=(parseInt(objectp.style.top)+25)+"px";}if(k_zz.left==xinkx&&k_zz.top==xinky){k_number++;xin();}k_kmove();},100)
}
if(kcode.keyCode==38&&fx!=40&&fx!=38){
fx=kcode.keyCode;
try{
clearInterval(kbottom);
}
catch(e){
}
try{
clearInterval(kright);
}
catch(e){
}
try{
clearInterval(ktop);
}
catch(e){
}
try{
clearInterval(kleft);
}
catch(e){
}
ktop=setInterval(function(){if(parseInt(objectp.style.top)=400){k_x.shift();k_y.shift();};k_x[k_x.length]=k_zz.left;k_y[k_y.length]=k_zz.top;objectp.style.top=(parseInt(objectp.style.top)-25)+"px";}if(k_zz.left==xinkx&&k_zz.top==xinky){k_number++;xin();}k_kmove();},100)
}
}
//生成新的元素代码
function xin(){
var xinkleft=parseInt(Math.random()*20)*25+"px";
var xinktop=parseInt(Math.random()*20)*25+"px";
var xinkcolor1=parseInt(Math.random()*14).toString(16)
var xinkcolor2=parseInt(Math.random()*14).toString(16)
var xinkcolor3=parseInt(Math.random()*14).toString(16)
var xinkcolor4=parseInt(Math.random()*14).toString(16)
var xinkcolor5=parseInt(Math.random()*14).toString(16)
var xinkcolor6=parseInt(Math.random()*14).toString(16)
var xink=document.createElement("div")
xink.id="k"+k_number
xink.className="xin"
xink.style.left=xinkleft
xink.style.top=xinktop
xink.style.backgroundColor="#"+xinkcolor1+xinkcolor2+xinkcolor3+xinkcolor4+xinkcolor5+xinkcolor6
var pp=document.getElementById("p")
pp.appendChild(xink)
xinkx=xinkleft
xinky=xinktop
}
//新的元素跟随移动函数
function k_kmove(){
if(k_number==0){}
else{
for(var i=0;i
相关文章推荐
- javascript 实现的多浏览器支持的贪吃蛇webgame
- JavaScript 进度条实现代码(Firefox等相似浏览器下不支持)
- 巧用注释实现不支持javascript的浏览器功能优雅降级
- 用Javascript和canvas实现的涂鸦板,似乎不支持IE8及以下浏览器
- JavaScript实现复制功能各浏览器支持情况实测
- 【原创】【JavaScript实现拼音排序】【支持所有主流浏览器+中英文系统】
- IE8等不支持placeholder,通过javascript实现此功能,能够兼容多种浏览器
- javascript检查浏览器是否支持flash的实现代码
- JavaScript 实现命名空间(namespace)的最佳方案——兼容主流的定义类(class)的方法,兼容所有浏览器,支持用JSDuck生成文档
- JavaScript调用xslt转化xml实现多浏览器支持
- JavaScript实现复制功能各浏览器支持情况实测
- javascript检查浏览器是否支持flash的实现代码
- JavaScript事件流 HTML和CSS代码支持页面的外观,JavaScript代码支持页面的行为,而JavaScript与HTML之间的交互是通过事件实现的。事件,是文档或者浏览器窗口中发生
- JavaScript实现复制功能各浏览器支持情况实测
- jsTree 是一个基于Javascript,支持多浏览器的Tree view jQuery插件。
- javascript之【贪吃蛇系列】第一弹:简单的贪吃蛇实现
- ZeroClipboard插件实现多浏览器复制功能(支持firefox、chrome、ie6)
- 检测浏览器是否支持html5 <video>标签 javascript
- jquery实现上传图片预览(需要浏览器支持html5)