微信小游戏之别踩白块

简介: 微信小游戏之别踩白块

image.png

相信很多人都玩过这种小游戏,就是遇到黑色键就需要点,遇到白色键就绝对不能点。如果没有点到黑块或者点中了白块,都算输。

 onReady: function(){
      var array = [];
      // 先生成一个10个长度的数组
      for(var i = 0; i < 10; i++){
          // 生成一个随机位数为1的数组
          var orderArray = [0,0,0,0];
          var randomNum = Math.floor(Math.random() * 4);
          orderArray[randomNum] = 1;
          array.push({id: i, block: orderArray});
      }
      this.setData({
          blockData: array.reverse()
      });
  },

我们可以看见游戏里面一共四条道。我们的初始化是先确定前10个按键,随机出1~4的数字,随机出来便是哪一条道是黑色按键。

  run: function(){
      // 滑动方法
      var that = this;
      var speed = 10;

      this.setData({
          canRun: true
      });

      var timer = setInterval(function(){
          // 当前滑动距离
          if(!that.data.canRun){
              clearInterval(timer);
              return;
          }
          
          var currentScrollHeight = that.data.scrollHeight;
          // 当前分数
          var score = that.data.score;
          // 滑块数据
          var blockData = that.data.blockData.concat().reverse();

          if(Math.abs(currentScrollHeight) == 150){
              // 滑到临界点
              // 判断是否过期
              // 判断条件是 第一个滑块的状态是否为已点击
              if(that.checkFirstLineBlockClicked(blockData[0].block)){
                  // 继续 去除旧节点 插入新节点 scrolllHeight归0
                  var newId = blockData[blockData.length - 1].id + 1;
                  blockData.push(that.getNewLine(newId));
                  blockData.shift();
                  that.setData({
                      scrollHeight: 0,
                      blockData: blockData.concat().reverse()
                  });
                  return;
              }
              // 报错
              that.handleWrong("请点击白块!游戏结束", score);
              return;
          }

          currentScrollHeight = currentScrollHeight - speed;
          that.setData({
              scrollHeight: currentScrollHeight
          });
      }, 20);
  },

上面这一段逻辑是游戏的核心所在,就是让黑白键向下滑动。如果是黑键超过了临界值,这时候需要判断一下是否已经被点击过了。如果被点击过那就会有标记起来,这里只需要判断是否已经被标记就行。如果没有标记点过的,那就可以直接判输。

complete: function(){
                // 将此分数存入全局变量
                app.globalData.currentScore = score;
                // 若此分数比最高分数还高 将其存入本地
                if(score > app.globalData.endlessScore){
                    app.globalData.endlessScore = score;
                    wx.setStorageSync('endlessScore',score);
                }
                var timer = setTimeout(function(){
                        wx.redirectTo({
                            url: '../end/end?type=endless&score=' + score
                        })
                        clearTimeout(timer);
                    }, 2000);
            }

这里表示已经完成了游戏,然后将最高分保存到游戏中。用的是wx.setStorageSync('endlessScore',score);可以永久保存。

整体来说设计不算太难,有想要深入探讨学习的,可以关注公众号:诗一样的代码,找我一起学。

相关文章
|
9天前
|
存储 编解码 小程序
抖音小程序开发中遇见的坑点
在抖音小程序开发中,需注意10大坑点:遵守小程序限制与规范;解决兼容性问题;优化数据加载速度;适应分享功能限制;处理视频播放挑战;优化图片加载显示;管理资源文件;提升用户体验;考虑安全性;及时更新维护。通过测试、优化和遵循官方文档,可克服这些问题,打造优质小程序。
|
9月前
|
程序员
程序员创业踩过的10个坑
我在之前的文章《程序员如何行稳致远》和《程序员是否适合创业》中跟朋友们提过,程序员要早点积累自己的生产资料,尽早尝试轻创业。但是创业有很多坑,我总结了这些年自己踩过的10个坑,希望对你有帮助。
|
6月前
|
缓存 小程序 JavaScript
微信小游戏使用小结
微信小游戏使用小结
50 0
|
10月前
|
IDE Shell 开发工具
这些年,你们一起踩过的坑(1)
今天就把平常被提问频率较高的一些问题整理出来,再次统一回答。基本都是非常早期阶段的问题,其中一定有你遇到过或将会遇到的。已经有一定基础的同学也可以对照下,这些问题涉及的概念,自己是否都已清楚。
|
11月前
|
人工智能
小白也可以做智慧大屏?我来帮你踩踩坑!
小白也可以做智慧大屏?我来帮你踩踩坑!
106 0
小白也可以做智慧大屏?我来帮你踩踩坑!
|
11月前
|
存储 移动开发 前端开发
别踩白块_前端H5游戏毕设(下)
别踩白块_前端H5游戏毕设
214 0
|
11月前
|
存储 移动开发 前端开发
别踩白块_前端H5游戏毕设
别踩白块_前端H5游戏毕设
162 0
|
12月前
|
小程序
女神节你也能自己动手制作一个漂亮的微信小游戏
嗨!大家好,我是小蚂蚁。 这是我之前制作的一个非常漂亮的微信小游戏,你可以给予它进行改编,然后自己制作一个小游戏送给你想送的人。 我发现这篇文章每年至少可以发四次,情人节一次,女神节一次,520一次,七夕一次[阴险]。 今年的我做了点儿改进,增加了一首背景音乐,是经典的《卡农》钢琴曲,希望你喜欢。
71 0
|
12月前
微信小游戏开发系列教程1-做个小游戏并不难,你也可以的
这是小蚂蚁的人人都能做游戏的系列教程的开篇,做个小游戏没有那么难,你也可以的。 我做了一个精致而温暖的小游戏,欢迎点击试玩。
102 0
|
12月前
|
小程序 容器
如何做一个塔防小游戏(一)
实现一个防守塔非常的简单,因为小游戏制作工具已经为我们提供了现成的“行为”了。 选中作为炮塔的精灵,然后在属性区的下方点击“管理行为”按钮,在行为对话框中开启“炮塔”行为。这个行为已经为我们提供了制作一个防守塔所需的大部分的功能了。
124 0