游戏类:贪食蛇:得分计算/蛇长计算/游戏加速/蛇加长[小鱼微信小程序]

游戏类:贪食蛇:得分计算/蛇长计算/游戏加速/蛇加长由小鱼微信小程序精心整理,并分享给大家。喜欢该资源的小伙伴请下载使用,注册、回复、每日签到、点赞送大量积分,满足您免费下载的愿望

游戏类:贪食蛇:得分计算/蛇长计算/游戏加速/蛇加长算是目前为止,最接近贪食蛇的一款小demo了吧,增加了积分部分:
主要功能:

得分计算/蛇长计算/游戏加速/蛇加长 (吃到食物, 蛇加长, 移动速度加快, 游戏结束计算得分/蛇长)

游戏类:贪食蛇:得分计算/蛇长计算/游戏加速/蛇加长

贪吃蛇项目主要由两个文件完成(snakeGame.wxml+snakeGame.js), 这两个文件也是必不可少的…现在先看snakeGame.wxml文件, 内容很简单, 如下
[AppleScript]
<canvas style="width: 100%; height: 100%; background-color: #ccc" canvas-id="snakeCanvas" class="snake-canvas-C" bindtouchstart="touchStart" bindtouchmove="touchMove"></canvas> 

创建画布标签 配置一些样式 绑定了两个事件 —bindtouchstart="touchStart" bindtouchmove="touchMove" 在snakeGame.js 对这两个事件(touchStart手指触摸屏幕/touchMove手指在手机上移动)进行处理

下面着重解释snakeGame.js文件内容
主要是调用此函数 requestAnimationFrame(function xx) // 循环执行动画绘制
[AppleScript]
// 核心代码为 function beginDraw (){        //  ........逻辑操作代码     // 调用 wx.drawCanvas,通过 canvasId 指定在哪张画布上绘制,通过 actions 指定绘制行为     wx.drawCanvas({          canvasId: 'snakeCanvas',          actions: context.getActions() // 获取绘图动作数组       });        // 循环执行动画绘制        requestAnimationFrame(beginDraw);     }     beginDraw();  }

上面代码会循环调用beginDraw()函数, 进行蛇身, 食物的添加等操作…

下面逐行解释代码:
[AppleScript]
// 获取手机屏幕宽/高  wx.getSystemInfo({         success: function(res) {              windowW = res.windowWidth;             windowH = res.windowHeight;          }     })    // 游戏开始的时候, 弹窗进行游戏说明     wx.showModal({         title: '请开始游戏',         content: "每得"+perSocre+"分,蛇身增长1 ",         success: function(res) {             if (res.confirm) {                  beginGame();                                  } else {                 initGame();                 // 点击取消 返回上一页                 wx.navigateBack({                     delta: 1                 })             }         }     });
游戏需要使用的变量
[AppleScript]
// 手指开始位置 var startX = 0; var startY = 0;  // 手指移动路径 var moveX = 0; var moveY = 0;  // 差值 var diffX = 0; var diffY = 0;  var snakeW = 10; var snakeH = 10;  var context = null;  // 蛇头 var snakeHead = {     color: "#0000ff",     x: 0,     y: 0,     w: snakeW,     h: snakeH };  // 蛇身 数组  var snakeBodys = [];  // 窗口宽/高 var windowW = 0; var windowH = 0;  // 食物 var foods = [];  // 蛇头移动方向 var snakeMoveDirection = "right";  // 总得分(吃到的食物大小-宽度的总和) var score = 0; // 蛇身总长(每得perSocre分 +1) var snakeLength = 0; // 是否变长/即移除蛇身 (每得perSocre分 变长-蛇身+1) var shouldRemoveBody = true; // (每得perSocre分 变长-蛇身+1) var perSocre = 5; // 得了count个perSocre分  var count = 1; // 蛇移动的速度(帧频率-----越大越慢) var defaultSpeedLevel = 10; var moveSpeedLevel = defaultSpeedLevel; //   减慢动画 var perform = 0;  // 吃到食物的次数 var eatFoodCount=0; // 每 speederPerFood 次吃到食物加速 var speederPerFood = 2;   // 初始化为2  表示每吃到2次食物, 蛇的移动速度增加
初始化游戏配置函数
[AppleScript]
    // 初始化游戏环境     function initGame(){         snakeHead.x= 0;         snakeHead.y = 0;         snakeBodys.splice(0,snakeBodys.length);//清空数组          snakeMoveDirection = "right";         // 上下文         context = wx.createContext();         foods.splice(0,foods.length);          score = 0;         count = 1;         moveSpeedLevel = defaultSpeedLevel;  // 恢复默认帧频率         perform = 0;         eatFoodCount = 0;           // 创建食物 20个         for (var i = 0; i<20; i++) {                    var food = new Food();             foods.push(food);         }     }
snakeGame.wxml文件中绑定的两个函数(手机点击touchStart/手机移动touchMove)函数
[AppleScript]
touchStart: function (e){        startX = e.touches[0].x;       startY = e.touches[0].y;      //   console.log("开始点击");    },    touchMove: function (e){     //   console.log("开始拖动手指");        moveX = e.touches[0].x;       moveY = e.touches[0].y;         diffX = moveX - startX;       diffY = moveY - startY;         if ( Math.abs(diffX) > Math.abs(diffY) && diffX>0 && !(snakeMoveDirection == "left") ){           //  向右           snakeMoveDirection = "right";         //   console.log("向右");        } else if (Math.abs(diffX) > Math.abs(diffY) && diffX<0 && !(snakeMoveDirection == "right") ){           //  向左           snakeMoveDirection = "left";         //   console.log("向左");       } else if (Math.abs(diffX) < Math.abs(diffY) && diffY>0 && !(snakeMoveDirection == "top") ){           //  向下           snakeMoveDirection = "bottom";         //   console.log("向下");       } else if (Math.abs(diffX) < Math.abs(diffY) && diffY<0 && !(snakeMoveDirection == "bottom") ){           //  向上           snakeMoveDirection = "top";         //   console.log("向上");       }

项目地址及下载:
https://github.com/CoderPeak/—snakeGame 游戏类:贪食蛇:得分计算/蛇长计算/游戏加速/蛇加长 —snakeGame-master.zip (3.34 MB, 下载次数: 163)

小鱼源码网www.51xyyx.com

轻松一刻:

一个记者采访100只企鹅一天都干些什么,第一只说:吃饭、睡觉、打豆豆,第二只说:吃饭、睡觉、打豆豆。一直问了99只都如此,问到第100只说:吃饭、睡觉。记者问:你怎么不打豆豆?企鹅曰:我他妈就是豆豆,你奶奶的。
 下载地址
登录  查看下载地址。

提示:注册,评论,每日签到,点赞可获得积分。

为您推荐

发表评论

电子邮件地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据

联系我们

联系我们

在线咨询: QQ交谈

邮箱: 2805477110@qq.com

周一至周六,8:00-21:00,节假日休息
关注微信
微信扫一扫关注我们

微信扫一扫关注我们

关注微博
返回顶部
切换注册

登录

忘记密码 ?

切换登录

注册