原生js写的贪吃蛇网页版游戏

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />

<title>原生js写的贪吃蛇网页版游戏</title>

</head>

<body><div><A href="http://www.999jiujiu.com/">http://www.999jiujiu.com/</A></div></body>

<script>

Star = {

init:function(){

var bigDiv = this.appendEle(this.addStyle(this.creatEle(),

{w:‘900‘,h:‘600‘,p:‘absolute‘,t:10,l:500}));

for(var i = 0; i<600/30;i++){

Star.data.arrayAll[i] = [];

for(var j = 0; j<900/30; j++){

div = this.addStyle(this.creatEle(),{w:(!+[1,] ? 30 :28),h:(!+[1,] ? 30 :28),f:‘left‘,border:‘1px solid #666‘});

div.setAttribute(‘number‘, i*30+j)

this.appendEle(div,bigDiv)

Star.data.arrayAll[i][j] = div;

}

}

bigDiv = this.appendEle(this.addStyle(this.creatEle(),

{w:‘900‘,h:‘600‘,p:‘absolute‘,t:10,l:500}));

this.pushEleInSelect(Star.data.arrayAll[9][15],Star.data.arrayAll[9][14],Star.data.arrayAll[9][13])

this.keyBoard.apply(this,arguments);

this.appearPoint();

this.leftGo();

},

appearPoint:function(){

var arrayIn = [];

var number;

for(var i = 0; i<600; i++){

if(!this.hasInArray(Star.data.arrayAll[parseInt(i/30)][i%30].getAttribute(‘number‘),Star.data.arraySelect)){

arrayIn.push(Star.data.arrayAll[i])

}

}

Star.data.foodNumber = number = parseInt(Math.random()*arrayIn.length);

this.giveColor(number)

},

giveColor:function(number){

var div = Star.data.arrayAll[parseInt(number/30)][number%30];

Star.timeInterval.timeB = setInterval(function(){

if(div.className == ‘shanshuo‘){

div.className = ‘‘

div.style.backgroundColor = ‘#fff‘

}

else{

div.className = ‘shanshuo‘;

div.style.backgroundColor = ‘#f00‘

}

},500)

},

disappearColor:function(){

clearInterval(Star.timeInterval.timeB);

Star.data.arrayAll[parseInt(Star.data.foodNumber/30)][Star.data.foodNumber%30].style.backgroundColor = ‘#f00‘;

},

hasInArray:function(number,array){

for(var i in array){

if(array[i] instanceof Array){

if(this.hasInArray(number,array[i])){

return true;

}

}

if(array[i].getAttribute && array[i].getAttribute(‘number‘) == number) return true;

}

return false;

},

keyBoard:function(){

var self = this;

document.onkeydown = function(e){

e = e? e : window.event;

switch(e.keyCode){

case 37: if(Star.keycode == 37 || Star.keycode == 39){return;};  self.leftGo(); break;

case 38: if(Star.keycode == 38 || Star.keycode == 40){return;};  self.upGo();break;

case 39: if(Star.keycode == 37 || Star.keycode == 39){return;};  self.rightGo();break;

case 40: if(Star.keycode == 38 || Star.keycode == 40){return;};  self.downGo();break;

}

}

},

leftGo:function(){

var div, number , self = this;

Star.keycode = 37;

clearInterval(Star.timeInterval.timeA)

Star.timeInterval.timeA = setInterval(function(){

number = Star.data.arraySelect[0].getAttribute(‘number‘);

if(number%30<=0 || self.hasInArray(number-1,Star.data.arraySelect)){

self.guanle();

}

else{

if(Star.data.foodNumber == number-1){

self.pushEleInSelect(Star.data.arrayAll[parseInt(Star.data.foodNumber/30)][Star.data.foodNumber%30]);

self.disappearColor();

self.appearPoint();

}

else{

div = Star.data.arraySelect.pop();

div.style.background = ‘#fff‘;

self.pushEleInSelect(Star.data.arrayAll[parseInt(number/30)][number%30-1]);

}

}

},Star.timeInterval.speed)

},

upGo:function(){

var div, number , self = this;

Star.keycode = 38;

clearInterval(Star.timeInterval.timeA)

Star.timeInterval.timeA = setInterval(function(){

number = parseInt(Star.data.arraySelect[0].getAttribute(‘number‘));

if(parseInt(number/30)<=0 || self.hasInArray(number-30,Star.data.arraySelect)){

self.guanle();

}

else{

if(Star.data.foodNumber == number-30){

self.pushEleInSelect(Star.data.arrayAll[parseInt(Star.data.foodNumber/30)][Star.data.foodNumber%30]);

self.disappearColor();

self.appearPoint();

}

else{

div = Star.data.arraySelect.pop();

div.style.background = ‘#fff‘;

self.pushEleInSelect(Star.data.arrayAll[parseInt(number/30)-1][number%30]);

}

}

},Star.timeInterval.speed)

},

rightGo:function(){

var div, number , self = this;

Star.keycode = 39;

clearInterval(Star.timeInterval.timeA)

Star.timeInterval.timeA = setInterval(function(){

number = parseInt(Star.data.arraySelect[0].getAttribute(‘number‘));

if(parseInt(number%30)>=29 || self.hasInArray(number+1,Star.data.arraySelect)){

self.guanle();

}

else{

if(Star.data.foodNumber == number+1){

self.pushEleInSelect(Star.data.arrayAll[parseInt(Star.data.foodNumber/30)][Star.data.foodNumber%30]);

self.disappearColor();

self.appearPoint();

}

else{

div = Star.data.arraySelect.pop();

div.style.background = ‘#fff‘;

self.pushEleInSelect(Star.data.arrayAll[parseInt(number/30)][number%30+1]);

}

}

},Star.timeInterval.speed)

},

downGo:function(){

var div, number , self = this;

Star.keycode = 40;

clearInterval(Star.timeInterval.timeA)

Star.timeInterval.timeA = setInterval(function(){

number = parseInt(Star.data.arraySelect[0].getAttribute(‘number‘));

if(parseInt(number/30)>=19 || self.hasInArray(number+30,Star.data.arraySelect)){

self.guanle();

}

else{

if(Star.data.foodNumber == number+30){

self.pushEleInSelect(Star.data.arrayAll[parseInt(Star.data.foodNumber/30)][Star.data.foodNumber%30]);

self.disappearColor();

self.appearPoint();

}

else{

div = Star.data.arraySelect.pop();

div.style.background = ‘#fff‘;

self.pushEleInSelect(Star.data.arrayAll[parseInt(number/30)+1][number%30]);

}

}

},Star.timeInterval.speed)

},

guanle:function(){

alert(‘撞墙了,总分:‘ + (Star.data.arraySelect.length-3) * parseInt(1000 / Star.timeInterval.speed));

location.reload();

},

creatEle:function(tag){

var tagName = tag || ‘DIV‘

return document.createElement(tagName)

},

appendEle:function(ele,father){

var father = father || document.body || document.documentElement

father.appendChild(ele)

return ele;

},

addStyle:function(ele,css){

for(var i in css){

switch(i){

case ‘b‘ : ele.style.background = css[i];       break;

case ‘l‘ : ele.style.left       = css[i]+‘px‘;  break;

case ‘r‘ : ele.style.right      = css[i]+‘px‘;  break;

case ‘t‘ : ele.style.top        = css[i]+‘px‘;  break;

case ‘d‘ : ele.style.down       = css[i]+‘px‘;  break;

case ‘p‘ : ele.style.position   = css[i];       break;

case ‘w‘ : ele.style.width      = css[i]+‘px‘;  break;

case ‘h‘ : ele.style.height     = css[i]+‘px‘;  break;

case ‘f‘ : ele.style.cssFloat   = css[i];  ele.style.styleFloat   = css[i];     break;

default  : ele.style[i]         = css[i];       break;

}

}

return ele;

},

pushEleInSelect:function(){

for(var i = 0; i<arguments.length; i++){

Star.data.arraySelect = [arguments[i]].concat(Star.data.arraySelect)

this.addStyle(arguments[i],{b:‘#f00‘})

}

}

}

Star.data={

arrayAll : [],

arraySelect:[],

newPoint:null,

foodNumber:0

}

Star.timeInterval={

timeA:null,

timeB:null

}

Star.keycode = 0;

window.onload = function(){

var select = Star.creatEle(‘select‘);

var optionDefault = Star.creatEle(‘option‘);

optionDefault.innerHTML = ‘请选择关卡‘

Star.appendEle(optionDefault,select)

Star.addStyle(select,{w:200,h:30,p:‘absolute‘,left:‘40%‘,top:‘40%‘})

for(var i = 0 ; i <10 ; i++){

var option = Star.creatEle(‘option‘);

option.innerHTML = ‘第‘ + (i+1) + ‘关‘

Star.appendEle(option,select);

}

Star.appendEle(select)

select.onchange = function(){

selectValue = select.options[select.selectedIndex].value || select.options[select.selectedIndex].innerHTML

var number = selectValue.match(/\d+/)[0]

Star.timeInterval.speed = parseInt(200/number);

Star.addStyle(select,{display:‘none‘});

Star.init();

}

}

</script>

</html>

时间: 2024-10-12 02:31:16

原生js写的贪吃蛇网页版游戏的相关文章

分享:计算机图形学期末作业!!利用WebGL的第三方库three.js写一个简单的网页版“我的世界小游戏”

这几天一直在忙着期末考试,所以一直没有更新我的博客,今天刚把我的期末作业完成了,心情澎湃,所以晚上不管怎么样,我也要写一篇博客纪念一下我上课都没有听,还是通过强大的度娘完成了我的作业的经历.(当然作业不是百度来的,我只是百度了一些示例代码的意思,怎么用!算了,越解释万一越黑呢!哈哈O(∩_∩)O哈哈~) ----------------------------------------------------------------分界线------------------------------

用Js写的贪吃蛇游戏

<!doctype html> <html> <head><title>snake</title> <script> function Snake(canvas){ this.canvas = canvas; this.length = 0; this.direction = 'down'; this.body = [], this.head = function(){ return this.length == 0 ? null :

JavaScript与html5写的贪吃蛇完整代码

JavaScript与html5写的贪吃蛇完整代码 查看运行效果可访问http://www.codesocang.com/texiao/youxitexiao/2014/0402/7045.html# <!doctype html><html lang="en"><head><meta charset="utf-8"><title>js网页版的贪吃蛇游戏</title><style typ

js+jQuery实现贪吃蛇小游戏

这是我第一次这么认真的去写一个程序.今天老师布置的编程任务是实现一个贪吃蛇的小游戏,一开始感觉很茫然的,因为以前都没有这么系统的去做过一个编程任务.后来理清思路去做,感觉问题也并不是那么的难. 首先,第一步肯定是要编写出我们的的静态页面. 第二步,让我们的贪吃蛇先从一个开始动起来. 第三步,让我们通过键盘去控制他的运动方向. 第四步,让我们去判断我们的贪吃蛇有没有撞墙,有没有吃到自己,因为这已经犯规了. 第五步,给我们的贪吃蛇随机生成一个‘食物’. 第六步,实现每当我们的贪吃蛇吃了一个食物,他都

原生JS写的ajax函数

参照JQuery中的ajax功能,用原生JS写了一个ajax,功能相对JQuery要少很多,不过基本功能都有,包括JSONP. 调用的方式分为两种: 1. ajax(url, {}); 2. ajax({}); 调用的方法参照JQuery的ajax,只是 不需要写$.ajax ,只需要写 ajax 就可以了. 代码如下: !function () { var jsonp_idx = 1; return ajax = function (url, options) { if (typeof url

用原生JS写移动动画案例及实际应用

js很强大 相信很多人都知道,那么它有哪些强大之处呢?有兴趣的人可以去查查,这里就不赘述了,因为不在本片文章讨论的范围. 我们要讲的是怎么用原生JS写移动动画?我们先举一个最简单的动画例子,很多网站的左边或右边会有个分享的框,鼠标放上去就还移出一个列表,里面是要分享的地址.鼠标移开,就会移进去. 要实现这个效果要怎么做呢? 可以想一想,鼠标经过和鼠标离开很好理解 用onmousemove事件和onmouseout事件就能完成. 那移动动画呢?我们可以一步一步思考, 首先,一开始是这样的 完成移动

原生js写的一个弧形菜单插件

弧形菜单是一种半弧式或者全弧形菜单,是一种不同于传统横向或者竖向菜单形式的菜单.最近在网上看到好多人写出了这种效果,于是也尝试自己写了一个. 实现方式:原生态js 主要结构: 1.参数合并 1 var defaultPra = { 2 mainMenuId: "ArcMenu",//主菜单id 3 menuBoxId:"menuBox",//菜单包裹id 4 position: "",//弧形菜单 5 customPosition:"0

c/c++ 贪吃蛇控制台版

贪吃蛇控制台版(操作系统win7 64位:编译环境gcc, vs2017通过,其它环境未测试 不保证一定通过) 运行效果: #include <iomanip> #include <windows.h> #include <conio.h> using namespace std; HANDLE hOut = GetStdHandle(STD_OUTPUT_HANDLE);//全局句柄 class snake; void Init_Console();//控制台初始化

javascript开发植物大战僵尸网页版游戏源代码下载

原文:javascript开发植物大战僵尸网页版游戏源代码下载 源代码下载:http://www.zuidaima.com/share/1550463429364736.htm javascrip实现的植物大战僵尸