iis服务器助手广告广告
返回顶部
首页 > 资讯 > 前端开发 > JavaScript >微信小程序开发之实现摇色子游戏
  • 621
分享到

微信小程序开发之实现摇色子游戏

微信小程序摇色子游戏小程序摇色子游戏小程序游戏 2023-01-28 06:01:05 621人浏览 八月长安
摘要

目录一、项目展示二、核心代码三、效果图一、项目展示 摇色子是一款简易的游戏类小程序 用户可以投出1-9个色子 二、核心代码 dice.wxml <!--pages/dice/

一、项目展示

摇色子是一款简易的游戏类小程序

用户可以投出1-9个色子

二、核心代码

dice.wxml

<!--pages/dice/dice.wxml-->
<import src="dice/dice-template.wxml" />
<view id="header">
  <view class="btn" catchtap="reduceDice">
    <image src="/images/btn-left.png"></image>
  </view>
  <text id="dice-count">{{diceCount}}</text>
  <view class="btn" catchtap="aDDDice">
    <image src="/images/btn-right.png"></image>
  </view>
</view>
<view id="dice-zone">
  <block wx:for="{{dicesData}}">
    <template is="dice-template" data="{{...item}}" />
  </block>
</view>
<view id="btn-roll-container" catchtap="onRollTap">
  <text id="btn-roll" >摇</text>
</view>

dice.js

// pages/dice/dices.js
Page({
  data: {
    diceCount: 1,
    dicesData:[]
  },
  onLoad: function (options) {
    // 页面初始化 options为页面跳转所带来的参数
    this.dotsData = {
      1: "5",
      2: "28",
      3: "357",
      4: "1379",
      5: "13579",
      6: "134679"
    };
    this.timer = null;
    this.animation = wx.createAnimation({
      duration: 400,
      timingFunction: 'linear',
    });
  },
  onReady: function () {
    // 页面渲染完成
  },
  onShow: function () {
    // 页面显示
  },

  // 产生色子点数
  createDotData: function () {
    var num = Math.ceil(Math.random() * 6);
    var diceData = this.dotsData[num];
    var dotsHidden = {};
    for (var i = 1; i <= 9; i++) {
      if (diceData.indexOf(i) > -1) {
        dotsHidden[i] = "black";
      } else {
        dotsHidden[i] = "white";
      }
    };
    return dotsHidden;
  },

  // 产生色子动画
  createAnim: function (left, top) {
    // 色子移入屏幕
    this.animation.top(top + "rpx").left(left + "rpx").rotate(Math.random()*180).step({ duration: 1000, timingFunction: "ease-out" });
    return this.animation.export();
  },

  // 产生色子移动终点位置
  createDicesPos: function () {
    var dicesPos = [];
    // 色子位置判断
    function judgePos(l, t) {
      for (var j = 0; j < dicesPos.length; j++) {
        // 判断新产生的色子位置是否与之前产生的色子位置重叠
        if ((dicesPos[j].left-146 < l && l < dicesPos[j].left + 146) && (dicesPos[j].top-146 < t && t < dicesPos[j].top + 146)) {
          return false;
        }
      }
      return true;
    }
    for (var i = 0; i < this.data.diceCount; i++) {
      var posData = {},
          left = 0,
          top = 0;
      do {
        // 随机产生色子的可能位置
        left = Math.round(Math.random() * 600); // 0~600,根据色子区域和色子的大小计算得出
        top = Math.round(Math.random() * 550); // 0~550,根据色子区域和色子的大小计算得出
      } while (!judgePos(left,top));
      posData.left = left;
      posData.top = top;
      dicesPos.push(posData);
    }
    return dicesPos;
  },

  // 设置色子数据
  setDicesData: function (diceCount) {
    var dicesData = [];

    // 色子动画数据
    var dicesPos = this.createDicesPos(); // 所有色子的位置数据
    for (var i = 0; i < diceCount; i++) {
      var diceData = {};
      diceData.anim = this.createAnim(dicesPos[i].left, dicesPos[i].top);
      diceData.dots = this.createDotData();
      dicesData.push(diceData);
    }
    this.setData({ dicesData: dicesData });
    
  },

  // 摇色子
  onRollTap: function () {
    // 设置色子移出动画
    var newData = this.data.dicesData;
    if(newData.length < this.data.diceCount){
      for(var i = 0; i < this.data.diceCount;i++){
        var data = {};
        newData.push(data);
      }
    }
    for (var i = 0; i < newData.length; i++) {
      this.animation.left("-233rpx").top("123rpx").rotate(-180).step();
      newData[i].anim = this.animation.export();
      this.setData({ dicesData: newData });
    }
    
    var that = this;
    this.timer = setTimeout(function(){
      // 色子改变点数并移入屏幕
      that.setDicesData(that.data.diceCount);
    },1400)
    
  },

  // 减少色子数量
  reduceDice: function () {
    if (this.data.diceCount > 1) {
      this.setData({
        diceCount: this.data.diceCount - 1
      })
    }
  },

  // 增加色子数量
  addDice: function () {
    if (this.data.diceCount < 9) {
      this.setData({
        diceCount: this.data.diceCount + 1
      })
    }
  }
})

三、效果图

具体的效果展示如下

以上就是微信小程序开发之实现摇色子游戏的详细内容,更多关于小程序摇色子游戏的资料请关注编程网其它相关文章!

--结束END--

本文标题: 微信小程序开发之实现摇色子游戏

本文链接: https://www.lsjlt.com/news/178275.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 微信小程序开发之实现摇色子游戏
    目录一、项目展示二、核心代码三、效果图一、项目展示 摇色子是一款简易的游戏类小程序 用户可以投出1-9个色子 二、核心代码 dice.wxml <!--pages/dice/...
    99+
    2023-01-28
    微信小程序摇色子游戏 小程序摇色子游戏 小程序游戏
  • 微信小程序实现简单的摇骰子游戏
    本文实例为大家分享了微信小程序实现摇骰子游戏的具体代码,供大家参考,具体内容如下 页面代码 <view class='top'>{{txt}}</view>...
    99+
    2022-11-12
  • 微信小程序开发之实现别踩白块游戏
    目录一、项目展示二、无尽模式三、计时模式四、急速模式一、项目展示 别踩白块是一款微信小游戏 分为无尽模式、计时模式、急速模式三种模式 用户需要点击不断移动的黑色方块 若点击到白色方块...
    99+
    2023-02-07
    微信小程序别踩白块游戏 小程序别踩白块游戏 小程序游戏
  • 微信小程序实现五子棋游戏
    本文实例为大家分享了微信小程序实现五子棋游戏的具体代码,供大家参考,具体内容如下 效果图 .wxml <view class="title">   <view ...
    99+
    2022-11-13
  • 微信小程序实现摇筛子效果
    本文实例为大家分享了微信小程序实现摇筛子效果的具体代码,供大家参考,具体内容如下 1.效果图: 2.HTML代码: <!--pages/game/game.wxml--&...
    99+
    2022-11-12
  • 微信小程序│ 游戏开发 │连连看游戏
    “连连看”是源自台湾的桌面小游戏,自从流入大陆以来风靡一时,也吸引众多程序员开发出多种版本的“连连看”。“连连看”考验的是各位的眼力,在有限的时间内,只要把所有能连接的相同图案,两个一对地找出来,每找出一对,它们就会自动消失,只要把所...
    99+
    2023-09-23
    游戏 微信小程序 小程序
  • 微信小程序实战之双人五子棋游戏是实现
    目录一、项目展示二、项目核心代码三、效果展示一、项目展示 微信小程序项目实例——双人五子棋 双人五子棋是一款游戏小程序 两位选手可以在15x15的棋盘上 进行...
    99+
    2022-11-13
  • 微信小程序如何实现五子棋游戏
    本文小编为大家详细介绍“微信小程序如何实现五子棋游戏”,内容详细,步骤清晰,细节处理妥当,希望这篇“微信小程序如何实现五子棋游戏”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。效果图.wxml<view&nb...
    99+
    2023-06-30
  • 微信小程序双人五子棋游戏如何实现
    今天小编给大家分享一下微信小程序双人五子棋游戏如何实现的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。一、项目展示微信小程序项...
    99+
    2023-06-30
  • 微信小程序实现弹球游戏
    本文实例为大家分享了微信小程序实现弹球游戏的具体代码,供大家参考,具体内容如下 实验内容: 小球按照随机的角度直线运动,如果碰到四壁则反弹。你们不需要做游戏计时、设置小球及背景颜色等...
    99+
    2022-11-13
  • 微信小程序实现扫雷游戏
    本文实例为大家分享了微信小程序实现扫雷游戏的具体代码,供大家参考,具体内容如下 实验小提醒,打开微信小程序模板时,一定要看清楚,要选js模板,不要选ts模板,因为ts中对数据类型检查...
    99+
    2022-11-13
  • 微信小程序实现拼图游戏
    本文实例为大家分享了微信小程序实现拼图游戏的具体代码,供大家参考,具体内容如下 页面展示 项目链接 微信小程序实现拼图游戏 项目设计 首页面 wxml <!--inde...
    99+
    2022-11-12
  • 微信跳一跳小程序游戏如何开发
    本篇内容主要讲解“微信跳一跳小程序游戏如何开发”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“微信跳一跳小程序游戏如何开发”吧!  小游戏只有以下两个必要文件:  game.js 小游戏主程序入口...
    99+
    2023-06-26
  • 微信小程序游戏怎么开发入门教程
    微信小程序游戏开发是现在比较热门的小程序类型开发项目,对于开发人员而言,怎么开发微信小程序游戏呢?今天小编分享一篇小游戏的入门开发教程,希望对微信小程序制作开发人员提供参考。 注册一个小程序账号 在官方注册一个微信小程序账号(注册申请教程)...
    99+
    2023-08-20
    微信小程序 游戏 小程序
  • 微信小程序实现贪吃蛇游戏
    本文实例为大家分享了微信小程序实现贪吃蛇游戏的具体代码,供大家参考,具体内容如下 一、项目截图 二、源代码 1.WXML 代码如下(示例): <view class='c...
    99+
    2022-11-12
  • 微信小程序实现井字棋游戏
    本文实例为大家分享了微信小程序实现井字棋游戏的具体代码,供大家参考,具体内容如下 效果图 .wxml <view class="title">   <view w...
    99+
    2022-11-13
  • 微信小程序游戏开发│石头剪刀布游戏(附源码)
     石头剪刀布游戏功能中一方是电脑,另一方是玩家。游戏时电脑一直快速切换出拳显示,当玩家选择底部的剪子、石头、布后,则电脑出拳停止,并在紫色方块中显示用户的出拳图片。游戏判断出输赢结果,记录玩家赢的次数。对战一局后可以单击“再来!”按钮...
    99+
    2023-09-02
    游戏 小程序 微信小程序
  • 微信小程序如何实现翻牌小游戏
    这篇文章主要介绍了微信小程序如何实现翻牌小游戏,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。具体内容如下一、新建一个quick start项...
    99+
    2022-10-19
  • 微信小程序小游戏开发文档如何写代码
    这篇文章主要讲解了“微信小程序小游戏开发文档如何写代码”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“微信小程序小游戏开发文档如何写代码”吧!  小游戏只有以下两个必要文件:  game.js...
    99+
    2023-06-26
  • 微信小程序如何实现拼图游戏
    这篇文章给大家分享的是有关微信小程序如何实现拼图游戏的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。具体内容如下页面展示项目链接微信小程序实现拼图游戏项目设计首页面wxml<!--index.wxml--&g...
    99+
    2023-06-20
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作