


下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、<!DOCTYPE html><html><head><meta charset="UTF-8"><title>Insert title here</title><style type="text/css">#myCanvasborder:1px solid #f00;</style></head><body><input type="button" value="开始游戏 " onclic
2、k="beginGame();" /><canvasid="myCanvas" width="450" height="450"></canvas></body><script type="text/javascript">var canvas = document.getElementById("myCanvas");var ctx = canvas.getContext("2d");var w =
3、15;/格子宽、高var snaLen = 6; /初始长度var snake = ; /身体长度for(var i = 0; i < snaLen; i+)snakei = new cell(i , 0 , 39);var head = snakesnaLen - 1; /头部1 / 7/ 初始食物var foodx = Math.ceil(Math.random() * 28 + 1);var foody = Math.ceil(Math.random() * 28 + 1);var food = new Food(foodx , foody);/ 食物function Food(x
4、 , y)this.x = x;this.y = y;return this;/ 身体function cell(x , y , d)this.x = x;this.y = y;this.d = d;return this;/ 动作function draw()ctx.clearRect(0,0,450,450);/ 画布局/for(var i = 0; i < 30; i+)/ctx.strokeStyle = "#ccc"/线条颜色/ctx.beginPath();/ctx.moveTo(0,i*w);/ctx.lineTo(450,i*w);2 / 7/ctx.
5、moveTo(i*w,0);/ctx.lineTo(i*w,450);/ctx.closePath();/ctx.stroke();/ 画蛇身for(var j = 0; j < snake.length; j+)ctx.fillStyle = "black"if(j = snake.length - 1)ctx.fillStyle = "red"ctx.beginPath();ctx.rect(snakej.x*w , snakej.y*w , w , w);ctx.closePath();ctx.fill();ctx.stroke();/ 出现
6、食物drawFood();/ 吃到食物if(head.x = food.x && head.y = food.y)initFood();food = new Food(foodx , foody);/ 重新出现食物drawFood();/ 增加蛇的长度有些小瑕疵,蛇身增长时应该是身体增长,而不是在蛇头上增长3 / 7var newCell = new cell(head.x , head.y , head.d);switch(head.d)case 40: newCell.y+ ; break;/下case 39: newCell.x+ ; break;/右case 38: n
7、ewCell.y- ; break;/上case 37: newCell.x- ; break;/左snakesnake.length = newCell;head = newCell;/head =/ 随机初始化食物function initFood()foodx = Math.ceil(Math.random() * 28 + 1);foody = Math.ceil(Math.random() * 28 + 1);for(var i = 0; i < snake.length; i+)if(snakei.x = foodx && snakei.y = foody)i
8、nitFood();/ 画食物function drawFood()/ 绘制食物ctx.fillStyle = "blue"ctx.beginPath();ctx.rect(food.x * w , food.y * w , w , w);4 / 7ctx.closePath();ctx.fill();draw();/ 监听键盘事件document.onkeydown = function(e)/ 下 40 , 右边 39,左边 37,上 38 键盘事件var keyCode = e.keyCode;if(head.d - keyCode != 2 && h
9、ead.d - keyCode != -2 && keyCode >=37 && keyCode <=40)moveSnake(keyCode);/ 控制蛇移动方向function moveSnake(keyCode)var newSnake = ;var newCell = new cell(head.x , head.y , head.d);/头/ 身体for(var i = 1; i < snake.length ; i+)newSnakei - 1 = snakei;newSnakesnake.length - 1 = newCell;
10、newCell.d = keyCode;switch(keyCode)case 40: newCell.y+ ; break;/下case 39: newCell.x+ ; break;/右case 38: newCell.y- ; break;/上case 37: newCell.x- ; break;/左5 / 7snake = newSnake;head = snakesnake.length - 1;checkDeath();draw();/ 游戏规则function checkDeath()/ 超出边框if(head.x >= 30 | head.y>= 30 | head.x < 0 | head.y < 0)alert("Game over!");window.location.reload();/ 咬到自己for(var i = 0 ; i < snake.length - 1 ; i+)if(head.x = snakei.x && head.y = snakei.y)alert("Game
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年农业科学研究与试验发展服务合作协议书
- 电子阅读器开发及内容资源整合方案
- 个人工程劳务协议年
- 2025年悬挂式离子风机项目合作计划书
- 农业生态技术应用示范推广协议
- 2025年杀螨隆项目合作计划书
- 高级管理职务任职证明书(7篇)
- 城市智能停车设施采购协议
- 高端职位任职资历证明书(7篇)
- 城市治理与市政发展反馈试题及答案
- 2024至2030年中国动画产业投资分析及前景预测报告
- 2025年中考历史复习专项训练:世界现代史选择题100题(原卷版)
- 四年级下册语文课外阅读题三(5篇含答案)
- 山东省济南市槐荫区2024年五年级数学第二学期期末学业水平测试试题含解析
- 五年级小数乘法练习题300道及答案
- 万达商家入驻商场合同(2024版)
- 【课件】初心与使命-时代的美术担当+课件-高中美术人美版(2019)美术鉴赏
- DLT 722-2014 变压器油中溶解气体分析和判断导则
- 北师大版五年级下册英语教案
- 铝合金薄板的热处理工艺与性能的研究
- 四川省成都市郫都区2023-2024学年数学五下期末调研试题含解析
评论
0/150
提交评论