从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 相关文章推荐
jquery弹出框的用法示例(2)
Aug 26 Javascript
在线一元二次方程计算器实例(方程计算器在线计算)
Dec 22 Javascript
浏览器缩放检测的js代码
Sep 28 Javascript
深入理解JavaScript中的箭头函数
Jul 28 Javascript
微信小程序-消息提示框实例
Nov 24 Javascript
微信小程序遇到修改数据后页面不渲染的问题解决
Mar 09 Javascript
微信小程序将字符串生成二维码图片的操作方法
Jul 17 Javascript
iconfont的三种使用方式详解
Aug 05 Javascript
JS实现点击拉拽轮播图pc端移动端适配
Sep 05 Javascript
微信小程序 JS动态修改样式的实现方法
Dec 16 Javascript
Vue的H5页面唤起支付宝支付功能
Apr 18 Javascript
JavaScript装饰者模式原理与用法实例详解
Mar 09 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
PHP使用mysql_fetch_object从查询结果中获取对象集的方法
2015/03/18 PHP
PHP用mysql_insert_id()函数获得刚插入数据或当前发布文章的ID
2016/11/25 PHP
PHP实现的DES加密解密类定义与用法示例
2020/11/02 PHP
一个符号插入器 中用到的js代码
2007/09/04 Javascript
jquery ajax 同步异步的执行示例代码
2010/06/23 Javascript
JavaScript的strict模式与with关键字介绍
2014/02/08 Javascript
$(document).ready(function() {})不执行初始化脚本
2014/06/19 Javascript
JavaScript中对象property的读取和写入方法介绍
2014/12/30 Javascript
JS显示表格内指定行html代码的方法
2015/03/31 Javascript
JavaScript中的slice()方法使用详解
2015/06/06 Javascript
AngularJS使用ngOption实现下拉列表的实例代码
2016/01/23 Javascript
原生javascript+css3编写的3D魔方动画旋扭特效
2016/03/14 Javascript
AngularJS基础 ng-cloak 指令简单示例
2016/08/01 Javascript
vue.js入门教程之计算属性
2016/09/01 Javascript
Radio 单选JS动态添加的选项onchange事件无效的解决方法
2016/12/12 Javascript
BootStrap 动态表单效果
2017/06/02 Javascript
vue中将html字符串转换成html后遇到的问题小结
2018/12/10 Javascript
Koa从零搭建到Api实现项目的搭建方法
2019/07/30 Javascript
layer.prompt输入层的例子
2019/09/24 Javascript
react 不用插件实现数字滚动的效果示例
2020/04/14 Javascript
vue的webcamjs集成方式
2020/11/16 Javascript
[02:07]2017国际邀请赛中国区预选赛直邀战队前瞻
2017/06/23 DOTA
[00:32]2018DOTA2亚洲邀请赛Mineski出场
2018/04/04 DOTA
Python自动化测试Eclipse+Pydev 搭建开发环境
2016/08/15 Python
python3+PyQt5实现柱状图
2018/04/24 Python
Python实现FTP文件传输的实例
2019/07/07 Python
Django Xadmin多对多字段过滤实例
2020/04/07 Python
bareMinerals官网:矿物质化妆品和护肤品
2018/02/04 全球购物
全球精选男装和家居用品:Article
2020/04/13 全球购物
运动会口号8字
2014/06/07 职场文书
售房协议书范本2014
2014/10/23 职场文书
西安兵马俑导游词
2015/02/02 职场文书
2015年校务公开工作总结
2015/05/26 职场文书
员工工作心得体会
2019/05/07 职场文书
Vue + iView实现Excel上传功能的完整代码
2021/06/22 Vue.js
游戏《铁拳》动画化!2022年年内播出
2022/03/21 日漫