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

 更新时间:2020年07月28日 16:17:49   作者:技术萌新阿肖  
这篇文章主要为大家详细介绍了JavaScript编写贪吃蛇游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

本文实例为大家分享了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; 
}

完整源代码:

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

C++经典小游戏汇总

python经典小游戏汇总

python俄罗斯方块游戏集合

JavaScript经典游戏 玩不停

java经典小游戏汇总

javascript经典小游戏汇总

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

相关文章

  • JavaScript如何判断对象有某属性

    JavaScript如何判断对象有某属性

    这篇文章主要介绍了JavaScript如何判断对象有某属性,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-07-07
  • 详解JavaScript中Promise类的使用方法

    详解JavaScript中Promise类的使用方法

    这篇文章主要为大家详细介绍了JavaScript中Promise类的使用方法,文中的示例代码简洁易懂,对我们学习JavaScript有一定的帮助,需要的可以参考一下
    2023-05-05
  • bootstrap table表格客户端分页实例

    bootstrap table表格客户端分页实例

    这篇文章主要为大家详细介绍了bootstrap table表格客户端分页实例,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-08-08
  • JavaScript实现Excel表格效果

    JavaScript实现Excel表格效果

    这篇文章主要为大家详细介绍了JavaScript实现Excel表格效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-02-02
  • 详解webpack之scss和postcss-loader的配置

    详解webpack之scss和postcss-loader的配置

    本篇文章主要介绍了详解webpack之scss和postcss-loader的配置,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-01-01
  • 详解如何webpack使用DllPlugin

    详解如何webpack使用DllPlugin

    这篇文章主要介绍了详解如何webpack使用DllPlugin,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-09-09
  • 使用JavaScript生成罗马字符的实例代码

    使用JavaScript生成罗马字符的实例代码

    这篇文章主要介绍了使用JavaScript生成罗马字符的实例代码,需要的朋友可以参考下
    2018-06-06
  • js捕捉键盘事件和按键键值的方法

    js捕捉键盘事件和按键键值的方法

    下面小编就为大家带来一篇js捕捉键盘事件和按键键值的方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-10-10
  • javascript实现table选中的行以指定颜色高亮显示的方法

    javascript实现table选中的行以指定颜色高亮显示的方法

    这篇文章主要介绍了javascript实现table选中的行以指定颜色高亮显示的方法,实例分析了javascript操作table表格元素与相关样式的技巧,需要的朋友可以参考下
    2015-05-05
  • three.js中3D视野的缩放实现代码

    three.js中3D视野的缩放实现代码

    这篇文章主要为大家详细介绍了three.js中3D视野的缩放实现代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-11-11

最新评论