本篇文章小编给大家分享一下用js编写简单的贪吃蛇小游戏代码示例,文章代码介绍的很详细,小编觉得挺不错的,现在分享给大家供大家参考,有需要的小伙伴们可以来看看。
代码如下:
HTML 5 部分
js部分
tools.js
function getStyle(ele, styleObj) {
for (const key in styleObj) {
ele.style[key] = styleObj[key];
}
}
function getRandom(a, b) {
return Math.floor(Math.random() * (b - a) + a +1)
}
snake.js
function Snake() {
this.scence = document.querySelector('#scence');
this.body = [
[0, 0, 'grey', null],
[0, 1, 'grey', null],
[0, 2, '#000', null]
];
this.dir = 'right';
this.lastdir = 'right';
this.;
this.;
this.scence_w = scence.offsetWidth;
this.scence_h = scence.offsetHeight;
}
Snake.prototype.found = function () {
for (let i = 0; i {
e = e || window.event;
let key = e.keyCode;
switch (key) {
case 39:
if (this.lastdir == 'left') {
this.dir = 'left'
} else {
this.dir = 'right'
};
break;
case 37:
if (this.lastdir == 'right') {
this.dir = 'right'
} else {
this.dir = 'left'
};
break;
case 38:
if (this.lastdir == 'down') {
this.dir = 'down'
} else {
this.dir = 'up'
};
break;
case 40:
if (this.lastdir == 'up') {
this.dir = 'up'
} else {
this.dir = 'down'
};
break;
}
}
}
//游戏结束
Snake.prototype.over = function () {
let top = this.body[this.body.length - 1][0];
let left = this.body[this.body.length - 1][1];
let width = this.scence_w / this.width - 1;
let height = this.scence_w / this.height - 1;
if (top width || left > height) {
clearInterval(timeid)
alert('game over');
}
for (let i = 0; i
food.js
function Food() {
this.scence = document.querySelector('#scence');
this.;
this.;
this.body = [-1, -1, 'red', null];
this.scence_w = scence.offsetWidth;
this.scence_h = scence.offsetHeight;
}
//食物生成
Food.prototype.crteate = function () {
this.body[1] = getRandom(0, this.scence_w / this.width-1);
this.body[0] = getRandom(0, this.scence_h / this.height-1);
this.body[3] = document.createElement('div');
getStyle(this.body[3], {
width: this.width + 'px',
height: this.height + 'px',
position: 'absolute',
top: this.height * (this.body[0] ) + 'px',
left: this.width * (this.body[1] ) + 'px',
backgroundColor: this.body[2],
borderRadius: ' 50%',
});
this.scence.appendChild(this.body[3]);
}
//蛇吃到食物
Food.prototype.eat=function(){
// const new=[0, 0, 'grey', null]
if(snake.body[snake.body.length-1][0]==this.body[0] && snake.body[snake.body.length-1][1]==this.body[1]){
this.scence.removeChild(this.body[3]);
this.crteate();
snake.body.unshift([-1,-1,"grey",null])
}
}
let food = new Food();
food.crteate();
food.eat();