HTML+CSS+JS实现 贪吃蛇游戏源码

 效果演示:  文末获取源码

代码目录:

主要代码实现:

部分代码 :

<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta http-equiv="X-UA-Compatible" content="ie=edge"><title>Document</title><style>canvas {border: 1px solid #000000;}</style></head><body><canvas width="980" height="600" id="canvas"></canvas><script>//初始化变量var foods = new Array(); //存放食物坐标var gameover = false; //游戏结束var gridWidth = 10; //正方形长度var canvas = document.getElementById("canvas");var ctx = canvas.getContext("2d"); //构建画布//食物定时器、蛇定时器、场景、蛇对象var food_interval, snake_interval, Farm, Snake;//方格对象function node(x, y, w) {var self = this;self.x = x;self.y = y;self.w = w;//食物初始化self.foodInit = function() {ctx.fillStyle = "#FF0000";ctx.fillRect(self.x, self.y, self.w, self.w);}//蛇的初始化self.snakeInit = function() {ctx.fillStyle = "#000000";ctx.strokeStyle = "#FFFFFF";ctx.fillRect(x, y, w, w);ctx.strokeRect(x, y, w, w);}//判断两个方块是否重合self.equals = function(node) {if (self.x == node.x && self.y == node.y) {return true;} else {return false;}}//清除格子  让格子跟背景颜色一样self.clear = function() {ctx.fillStyle = "#E8FFFF";ctx.strokeStyle = "#E8FFFF";ctx.fillRect(x, y, w, w);ctx.strokeRect(x, y, w, w);}}//创建场景对象function farm() {//保存作用域var self = this;ctx.fillStyle = "#E8FFFF"; //填充的场景颜色ctx.fillRect(0, 0, canvas.width, canvas.height);//增加食物的方法self.addFood = function() {if (gameover) {return gameOver(); //游戏结束方法} else {//计算随机位置var x = parseInt(canvas.width / gridWidth * Math.random()) * gridWidth;var y = parseInt(canvas.height / gridWidth * Math.random()) * gridWidth;//实例化一个方格对象var food = new node(x, y, gridWidth);//得到对象之后,要把食物画到界面上面food.foodInit();//追加到数组里面foods.push(food);}}}//蛇对象function snake(x, y, len, speed) {var self = this;self.init = function() {self.len = len; //身体长度self.nodes = new Array(); //蛇的身体数组self.dir = "R"; //方向self.speed = speed; //速度//从右往左,逐格把蛇画出来var nx = x,ny = y; //蛇的坐标点for (var i = 0; i < len; i++) {//创建一个方格对象var tmpNode = new node(nx, ny, gridWidth);//把蛇的身体存放起来self.nodes[i] = tmpNode;//存放完了之后,把蛇画出来tmpNode.snakeInit();nx -= gridWidth; //往左边画 }//让蛇动起来定时器snake_interval = setInterval(self.move, self.speed);//给蛇绑定方向按键document.onkeydown = function(e) {//按键的值var code = e.keyCode;//记录一下旧的方向self.odir = self.dir;switch (code) {//一组方向键 一组字母 WASDcase 65:self.dir = "L";break;case 87:self.dir = "U";break;case 68:self.dir = "R";break;case 83:self.dir = "D";break;case 37:self.dir = "L";break;case 38:self.dir = "U";break;case 39:self.dir = "R";break;case 40:self.dir = "D";break;}}}

源码获取

查看博主主页或私信博主获取

精彩推荐更新中:

HTML5大作业实战100套

  打卡 文章 更新 40  /  100天

大家可以点赞、收藏、关注、评论我啦 、需要完整文件随时或交流查看下方微信获取哟~!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/562041.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

mysql sql高级应用程序_mysql-sql高级应用

sql语言进阶典型操作order by- select * from play_list order bycreatetime;- select * from play_list order by bookedcount desc,createtime asc;order by语句用于根据指定的列对结果集进行排序order by语句默认按照升序对记录排序&#xff0c;使用desc则降序排序order by也…

HTML+CSS+JS实现 ❤️个人相册封面卡片❤️

效果演示&#xff1a; 代码目录&#xff1a; 主要代码实现&#xff1a; CSS样式&#xff1a; charset "utf-8"; import url("https://s2.pstatp.com/cdn/expire-1-M/font-awesome/4.7.0/css/font-awesome.min.css"); body {background-color: #1F1F1F;o…

python隐藏启动台_如何在Python中启动后台进程?

如何在Python中启动后台进程&#xff1f;我正在尝试将shell脚本移植到更易读的python版本。 原始shell脚本在后台使用“&#xff06;amp;”启动多个进程(实用程序&#xff0c;监视器等)。 如何在python中实现相同的效果&#xff1f; 我希望这些进程不会在python脚本完成时死掉。…

HTML+CSS+JS实现 ❤️swiper倾斜图片特效❤️

效果演示&#xff1a; 代码目录&#xff1a; 主要代码实现&#xff1a; CSS样式&#xff1a; .img_swiper {width: 800px;margin: 0 auto;position: relative; }.img {width: 100%;height: 100%; }.img_swiper .swiper-button-prev {width: 40px;height: 40px;background-im…

如何将c语言程序封装供python调用_C++调用python

C调用python在C/C中嵌入Python&#xff0c;可以使用Python提供的强大功能&#xff0c;通过嵌入Python可以替代动态链接库形式的接口&#xff0c;这样可以方便地根据需要修改脚本代码&#xff0c;而不用重新编译链接二进制的动态链接库。至少你可以把它当成文本形式的动态链接库…

HTML+CSS+JS实现 ❤️touchSlider图片滚动图片轮播❤️

效果演示&#xff1a; 代码目录&#xff1a; 主要代码实现&#xff1a; CSS样式&#xff1a; charset "utf-8"; * {margin: 0;padding: 0;list-style: none;border: 0; }body {width: 100%;margin: 0 auto;overflow: hidden }/* main_image */.main_visual {heigh…

win10配置mysql8.0_Win10下mysql 8.0.20 安装配置方法图文教程

Win10系统下MySQL 8.0.20安装和配置超详细教程MySQL下载MySQL直接去官网下载就行&#xff0c;选择community版本(免费)下载&#xff0c;链接。在select operating system中选择Microsoft Windows&#xff0c;下方对应出现最新版本的MySQL&#xff0c;目前是MySQL 8.0.20&#x…

HTML+CSS+JS实现 ❤️echarts省市区地图城市选择❤️

效果演示&#xff1a; 代码目录&#xff1a; 主要代码实现&#xff1a; CSS样式&#xff1a; * {margin: 0;padding: 0; }body {font-family: Exo, -apple-system, Open Sans, HelveticaNeue-Light, Helvetica Neue Light, Helvetica Neue, Hiragino Sans GB, Microsoft YaH…

基于SpringBoot+mybatis+layui就业管理系统设计和实现

&#x1f345; 作者主页&#xff1a;Java李杨勇 &#x1f345; 简介&#xff1a;Java领域优质创作者&#x1f3c6;、Java李杨勇公号作者✌ 简历模板、学习资料、面试题库、技术互助【关注我&#xff0c;都给你】 &#x1f345; 欢迎点赞 &#x1f44d; 收藏 ⭐留言 &#x1f…

java集合清空_java 集合删除数据

public static void main(String[] args) {List list new ArrayList<>(Arrays.asList(1, 2, 3, 4));// 常规删除// list.removeIf(next -> next 3);Iterator iterator list.iterator();while (iterator.hasNext()) {// Integer next iterator.next();// 当不执行 …

HTML+CSS+JS实现 ❤️图片轮播幻灯片❤️

效果演示&#xff1a; 文末获取源码 代码目录&#xff1a; 主要代码实现&#xff1a; CSS样式&#xff1a; font-face {font-weight: normal;font-style: normal; }.csslider1 {display: inline-block;position: relative;max-width: 833px;width: 100%;margin-top: 10px; }.…

single java_java single Pattern 单例模式

单例模式是 Java 中最简单的设计模式之一。这种类型的设计模式属于创建型模式&#xff0c;它涉及到一个单一的类&#xff0c;该类自己负责创建自己的对象并且确保只有单个对象被创建。这个类提供了一种访问其唯一的对象的方式&#xff0c;可以直接访问&#xff0c;不需要实例化…

HTML+CSS+JS实现 ❤️ html5响应式图片轮播❤️

效果演示&#xff1a; 文末获取源码 代码目录&#xff1a; 主要代码实现&#xff1a; CSS样式&#xff1a; .flickerplate {position: relative;width: 100%;height: 600px;background-color: #e6e6e6;overflow: hidden }.flickerplate ul.flicks {width: 10000%;height: 100…

php time java_java 时间戳和PHP时间戳 的转换 php time()

最近在弄discuz,数据库mysql,时间类型int 10总结一下java 时间戳和PHP时间戳 的转换问题&#xff1a;由于精度不同&#xff0c;导致长度不一致&#xff0c;直接转换错误。JAVA时间戳长度是13位&#xff0c;如&#xff1a;1294890876859PHP时间戳长度是10位&#xff0c; 如&…

HTML+CSS+JS实现 ❤️HTML5图片幻灯片轮播切换❤️

效果演示&#xff1a; 文末获取源码 代码目录&#xff1a; 主要代码实现&#xff1a; HTML代码 : <!DOCTYPE html> <html><head><meta charset"utf-8"><meta name"viewport" content"widthdevice-width, initial-scale1…

HTML+CSS+JS实现echarts图表炫光分布地图动画

效果演示&#xff1a; 文末获取源码 代码目录&#xff1a; 主要代码实现&#xff1a; HTML代码 : <html lang"en"><head><meta charset"utf-8"><title>ECharts</title> </head><body style"background:#1B1…

java jndi使用_java – 使用JNDI进行数据库连接

那么,它是一个客户端应用程序&#xff1f;应用程序和数据库通常使用DriverManager#getConnection()获得的连接相互通信&#xff1f;如果是这样,那么您不一定需要JNDI才能使连接池工作.单独的连接池框架已经足够了.例如C3P0或Apache Commons DBCP(我建议使用C3P0; DBCP是单线程的…

HTML+CSS+JS实现 ❤️echarts企业地区大数据图表模板❤️

效果演示&#xff1a; 文末获取源码 代码目录&#xff1a; 主要代码实现&#xff1a; CSS样式&#xff1a; body, ul, li, p, h1, h2, h3, h4, h5, h6, dl, dt, dd {margin: 0;padding: 0; }ul, li {list-style: none; }a:link, a:visited, a:active {text-decoration: none; …

HTML+CSS+JS实现 ❤️echarts大数据统计图表实例❤️

效果演示&#xff1a; 文末获取源码 代码目录&#xff1a; 主要代码实现&#xff1a; HTML代码 : <!doctype html> <html lang"en"><head><meta charset"UTF-8"><meta name"Generator" content"EditPlus"…

2014 java面试题_2014 java面试题 (答案)

2014 java面试题 (答案)题目一、选择题1. 如下代码&#xff1a;class Super {public Integer getLenght() { return new Integer(4); }}public class Sub extends Super {public Long getLenght() { return new Long(5); }public static void main(String[] args) {Super soope…