作者:手机用户2602925827 | 来源:互联网 | 2024-11-08 13:56
本文详细探讨了使用纯JavaScript开发经典贪吃蛇游戏的技术细节和实现方法。通过具体的代码示例,深入解析了游戏逻辑、动画效果及用户交互的实现过程,为开发者提供了宝贵的参考和实践经验。
本文实例讲述了原生Javascript制作贪吃蛇小游戏的方法。分享给大家供大家参考,具体如下:
HTML部分
游戏玩法:上下左右控制小蛇的方向。
撞到边缘游戏结束。
长按方向键即可加速。
js开始
function $(id){
return document.getElementById(id);
}
window.Onload= function () {
// 创建背景
js_background();
// 随机食物
js_food();
// 创建贪吃蛇
create_snake();
document.Onkeydown= function(event){
let evt = event || window.event;
switch (evt.keyCode) {
case 37:direction="left";break;
case 38:direction="up";break;
case 39:direction="right";break;
case 40:direction="down";break;
default:;
// console.log(evt.keyCode);
}
start_snake()
}
}
//贪吃蛇方向// 创建背景
// 贪吃蛇方向// 创建背景
var direction = "right";
// 创建背景
function js_background(){
let bg = document.createElement("div");
bg.id = "js_bg";
bg.style.cssText = "position:relative;margin :50px auto; background:skyblue; width:800px; height:600px;";
document.body.appendChild(bg);
}
//随机食物
var food_left = 0;
var food_top = 0;
function js_food(){
food_left = parseInt(Math.random()*800/20)*20;
food_top = parseInt(Math.random()*600/20)*20;
let foodDiv = document.createElement("div");
foodDiv.style.cssText = "position:absolute;width:20px; height: 20px; border-radius:50%; background:yellow;";
foodDiv.style.left = food_left+"px";
foodDiv.style.top = food_top+"px";
foodDiv.id = "foodDiv";
$("js_bg").appendChild(foodDiv);
}
//创建贪吃蛇
function create_snake(){
let lis = document.getElementsByTagName("li");
lis[0].style.backgroundColor = "black";
lis[0].style.zIndex = 1;
for(let i = 0; i
//定时器
// 定时器
let timre = setInterval(start_snake,200);
let lis = document.getElementsByTagName("li");
function start_snake(){
let left=parseFloat(lis[0].style.left);
let top= parseFloat(lis[0].style.top);
// console.log(top)
switch (direction) {
case "left":left = (left-20);break;
case "up":top = (top-20);break;
case "right":left = (left+20);break;
case "down":top = (top+20);break;
default:;
}
if(left<0 || left>800-20 || top<0 || top>600-20){
window.clearInterval(timre);
alert("亲,您Game Over");
return;
}
// for(let i = 1; i <= lis.length-1; i++){
// lis[i].style.left = lis[i-1].style.left;
// lis[i].style.top = lis[i-1].style.top;
// }
for(var i=lis.length-1;i>0;i--){
lis[i].style.left = lis[i-1].style.left;
lis[i].style.top = lis[i-1].style.top;
}
// 改变第一节
lis[0].style.left = left+"px";
lis[0].style.top = top+"px";
// console.log(food_top+"----------");
// console.log(top);
if(left == food_left && top == food_top){
eat();
}
}
function eat() {
$("js_bg").removeChild($("foodDiv"));
js_food();
// alert("ll");
let li = document.createElement("li");
$("js_bg").appendChild(li);
// create_snake();
}
希望本文所述对大家Javascript程序设计有所帮助。