最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
用js编写简单的贪吃蛇小游戏代码示例
时间:2022-06-29 02:12:01 编辑:袖梨 来源:一聚教程网
本篇文章小编给大家分享一下用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();
相关文章
- 暗喻幻想:ReFantazio御剑滑行方法 10-29
- 暗喻幻想:ReFantazio黄金虫数量说明 10-29
- 暗喻幻想魔坏之锤获取方法攻略分享 10-29
- 暗喻幻想:ReFantazio难度更改说明 10-29
- 暗喻幻想古井死胡同BOSS打法攻略分享 10-29
- 骗子酒吧骗子骰子游戏规则介绍说明 10-29