从0到1学习JavaScript编写贪吃蛇游戏


Posted in Javascript onJuly 28, 2020

本文实例为大家分享了JavaScript编写贪吃蛇游戏的具体代码,供大家参考,具体内容如下

游戏截图

从0到1学习JavaScript编写贪吃蛇游戏

1.画出游戏界面

var c=document.getElementById("myCanvas");
 var cxt=c.getContext("2d");//获取地图

2.给小蛇设置参数

var time = 160 ; //蛇的速度
 var x = y = 8; 
   var t = 20; //蛇身长
   var map = []; //记录蛇运行路径
 var size = 8; //蛇身单元大小

3.移动小蛇以及判断游戏失败条件

function set_game_speed(){ // 移动蛇
 switch(direction){
  case 1:y = y-size;break;
  case 2:x = x+size;break;
  case 0:x = x-size;break;
  case 3:y = y+size;break;
 }
 if(x>400 || y>400 || x<0 || y<0){
  alert("碰壁了!游戏失败.....");window.location.reload(); 
  }
 for(var i=0;i<map.length;i++){
  if( parseInt(map[i].x)==x && parseInt(map[i].y)==y){
  alert("撞到自己了!游戏失败.....");window.location.reload(); 
  }
  }
  if (map.length>t) { //保持舍身长度
  var cl = map.shift(); //删除数组第一项,并且返回原元素
  cxt.clearRect(cl['x'], cl['y'], size, size);
  };
  map.push({'x':x,'y':y}); //将数据添加到原数组尾部
  cxt.fillStyle = "green";//内部填充颜色
  cxt.strokeStyle = "green";//边框颜色
  cxt.fillRect(x, y, size, size);//绘制矩形
  if((a*8)==x && (a*8)==y){ //吃食物
  rand_frog();t++;//吃到食物蛇身加长
  Score_change();
  }
 }

4.改变蛇的方向

document.onkeydown = function(e) { //改变蛇方向
 var code = e.keyCode - 37;
 switch(code){
  case 1 : direction = 1;break;//上
  case 2 : direction = 2;break;//右
  case 3 : direction = 3;break;//下
  case 0 : direction = 0;break;//左
 }
 }

5.随机生成食物

//随机生成食物 
 function rand_frog(){
   a = Math.ceil(Math.random()*50);
   cxt.fillStyle = "red";//内部填充颜色
   cxt.strokeStyle = "red";//边框颜色
   cxt.fillRect(a*8, a*8, 8, 8);//绘制矩形
}
// 随机放置食物
rand_frog();

6.设置得分情况

//计算得分
function Score_change(){
 s=s+10;
 score.value=s; 
}

完整源代码:

从0到1学习JavaScript编写贪吃蛇游戏

更多有趣的经典小游戏实现专题,分享给大家:

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
C#中TrimStart,TrimEnd,Trim在javascript上的实现
Jan 17 Javascript
33个优秀的 jQuery 图片展示插件分享
Mar 14 Javascript
JQuery for与each性能比较分析
May 14 Javascript
JS小游戏之宇宙战机源码详解
Sep 25 Javascript
使用phantomjs进行网页抓取的实现代码
Sep 29 Javascript
jQuery实现感应鼠标动画效果自动伸长的输入框实例
Feb 24 Javascript
input点击后placeholder中的提示消息消失
Jan 15 Javascript
AngularJS中指令的四种基本形式实例分析
Nov 22 Javascript
vue实现长图垂直居上 vue实现短图垂直居中
Oct 18 Javascript
javascript(基于jQuery)实现鼠标获取选中的文字示例【测试可用】
Oct 26 jQuery
基于JS实现视频上传显示进度条
May 12 Javascript
用JavaScript实现贪吃蛇游戏
Oct 23 Javascript
javascript如何使用函数random来实现课堂随机点名方法详解
Jul 28 #Javascript
Node.js 深度调试方法解析
Jul 28 #Javascript
vue-列表下详情的展开与折叠案例
Jul 28 #Javascript
js 数组当前行添加数据方法详解
Jul 28 #Javascript
Vue 解决通过this.$refs来获取DOM或者组件报错问题
Jul 28 #Javascript
JS代码简洁方式之函数方法详解
Jul 28 #Javascript
vue 组件之间事件触发($emit)与event Bus($on)的用法说明
Jul 28 #Javascript
You might like
全国FM电台频率大全 - 21 海南省
2020/03/11 无线电
浅谈PHP正则中的捕获组与非捕获组
2016/07/18 PHP
JS URL传中文参数引发的乱码问题
2009/09/02 Javascript
jQuery阻止冒泡和HTML默认操作
2010/11/17 Javascript
jquery的extend和fn.extend的使用说明
2011/01/09 Javascript
Javascript学习笔记之数组的遍历和 length 属性
2014/11/23 Javascript
js获取当前日期前七天的方法
2015/02/28 Javascript
AngularJS基础学习笔记之控制器
2015/05/10 Javascript
JavaScript基本语法讲解
2015/06/03 Javascript
jQuery UI设置固定日期选择特效代码分享
2015/08/27 Javascript
JS判断字符串字节数并截取长度的方法
2016/03/05 Javascript
Bootstrap轮播插件中图片变形的终极解决方案 使用jqthumb.js
2016/07/10 Javascript
利用JS屏蔽页面中的Enter按键提交表单的方法
2016/11/25 Javascript
vue通过watch对input做字数限定的方法
2017/07/13 Javascript
详解Vue-Cli 异步加载数据的一些注意点
2017/08/12 Javascript
使用node.js对音视频文件加密的实例代码
2017/08/30 Javascript
js截取字符串功能的实现方法
2017/09/27 Javascript
vue中axios的封装问题(简易版拦截,get,post)
2018/06/15 Javascript
layui table设置前台过滤转义等方法
2018/08/17 Javascript
小程序云开发教程如何使用云函数实现点赞功能
2019/05/18 Javascript
移动端底部导航固定配合vue-router实现组件切换功能
2019/06/13 Javascript
layer弹出层显示在top顶层的方法
2019/09/11 Javascript
微信小程序实现吸顶效果
2020/01/08 Javascript
微信小程序新闻网站详情页实例代码
2020/01/10 Javascript
ES11新增的这9个新特性,你都掌握了吗
2020/10/15 Javascript
使用Django的模版来配合字符串翻译工作
2015/07/27 Python
Python中正则表达式详解
2017/05/17 Python
利用python实现汉字转拼音的2种方法
2019/08/12 Python
Python如何自动获取目标网站最新通知
2020/06/18 Python
利用CSS3实现毛玻璃效果示例源码
2016/09/25 HTML / CSS
MYSQL基础面试题
2012/05/13 面试题
工厂采购员岗位职责
2014/04/08 职场文书
教室布置标语
2014/06/26 职场文书
小学爱国卫生月活动总结
2014/06/30 职场文书
山东省召开党的群众路线教育实践活动总结大会新闻稿
2014/10/21 职场文书
商业计划书之服装
2019/09/09 职场文书