700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > 微信小程序版狼人杀+服务端系列(1)

微信小程序版狼人杀+服务端系列(1)

时间:2021-11-24 15:29:46

相关推荐

微信小程序版狼人杀+服务端系列(1)

本系列主要讲利用微信小程序完整实现狼人杀游戏,慢慢跟进

关于狼人杀的游戏规则,就懒得赘述了,请自行百度。以下正文开始

创建房间以及加入房间创建房间逻辑加入房间逻辑

后续更改界面什么

创建房间效果图

以下实现逻辑,首先具有一个初始参数,然后根据用户选择来进行调节

Page({/*** 页面的初始数据*/data: {person_step: 62.5, //初始人数条wolf_step: 60, //初始狼人条sumPerson: 9, //参与人数sumWolf: 3, //狼人人数radio: '2', //默认屠边loading: false, //不加载initPerson: { //默认配置hunter: 1, //猎人witch: 1, //女巫prophet: 1, //预言家guard: 0, //守卫idiot: 0, //白痴villager: 3, //村民wolf: 3, //狼人sheriff: 2, //警长票数},},/*** 生命周期函数--监听页面加载*/onLoad: function(options) {},/*** 生命周期函数--监听页面初次渲染完成*/onReady: function() {},/*** 生命周期函数--监听页面显示*/onShow: function() {},/*** 生命周期函数--监听页面隐藏*/onHide: function() {},/*** 生命周期函数--监听页面卸载*/onUnload: function() {},/*** 页面相关事件处理函数--监听用户下拉动作*/onPullDownRefresh: function() {},/*** 页面上拉触底事件的处理函数*/onReachBottom: function() {},/*** 用户点击右上角分享*/onShareAppMessage: function() {},onDrag(event) {this.setData({sumPerson: Math.ceil(event.detail.value / 6.25)})},onDrag_wolf(event) {this.setData({sumWolf: Math.ceil(event.detail.value / 20)})},onChange(event) {this.setData({radio: event.detail});},//推荐设置setIdentity() {let initPerson = this.data.initPerson,that = thisswitch (this.data.sumPerson) {case 9:initPerson.hunter = 1initPerson.witch = 1initPerson.prophet = 1initPerson.wolf = 3initPerson.villager = 3initPerson.guard = 0initPerson.idiot = 0initPerson.sheriff = 0break;case 10:initPerson.hunter = 1initPerson.witch = 1initPerson.prophet = 1initPerson.wolf = 3initPerson.villager = 4initPerson.guard = 0initPerson.idiot = 0initPerson.sheriff = 0break;case 11:initPerson.hunter = 1initPerson.witch = 1initPerson.prophet = 1initPerson.wolf = 4initPerson.villager = 3initPerson.guard = 0initPerson.idiot = 1initPerson.sheriff = 3break;case 12:initPerson.hunter = 1initPerson.witch = 1initPerson.prophet = 1initPerson.wolf = 4initPerson.villager = 4initPerson.guard = 0initPerson.idiot = 1initPerson.sheriff = 3break;case 13:Toast('目前没有推荐配置,请自行配置')break;case 14:Toast('目前没有推荐配置,请自行配置')break;case 15:Toast('目前没有推荐配置,请自行配置')break;case 16:Toast('目前没有推荐配置,请自行配置')break;}this.setData({initPerson: initPerson,sumWolf: initPerson.wolf,sumPerson: that.reckonPerson(),person_step: that.reckonPerson() * 6.25,wolf_step: initPerson.wolf * 20})},//头像单点identityClick(event) {// 1 2 3 4 5 6 7 8 hunter witch prophet wolf villager guard idiot sherifflet initPerson = this.data.initPerson,that = this,sumPerson = this.data.sumPersonswitch (parseInt(event.currentTarget.dataset.index)) {case 1:Toast('当前局只能有1个猎人')break;case 2:Toast('当前局只能有1个女巫')break;case 3:Toast('当前局只能有1个预言家')break;case 4:initPerson.wolf = initPerson.wolf + 1break;case 5:initPerson.villager = initPerson.villager + 1break;case 6:initPerson.guard = initPerson.guard + 1break;case 7:initPerson.idiot = initPerson.idiot + 1break;case 8:if (parseInt(initPerson.sheriff) < 4) {initPerson.sheriff = initPerson.sheriff + 0.5;} else {Toast('最高4票,0.5票算作一人')}break;}if (that.reckonPerson() <= 16) {this.setData({initPerson: initPerson,sumPerson: that.reckonPerson(),sumWolf: initPerson.wolf,person_step: that.reckonPerson() * 6.25,wolf_step: initPerson.wolf * 20})} else {Toast('超过最大人数十六人')}},//计算总人数reckonPerson() {let initPerson = this.data.initPersonlet sumPerson = initPerson.hunter + initPerson.witch + initPerson.prophet + initPerson.wolf + initPerson.villager + initPerson.guard + initPerson.idiotreturn sumPerson;},btnCreate() {let that = this,initPerson = this.data.initPersonthis.setData({loading: true})//请求创建房间util.request(api.CreateRoom, {openid: app.globalData.userInfo.openid,gamer: that.reckonPerson(),wolf: initPerson.wolf,villager: initPerson.villager,witch: initPerson.witch,prophet: initPerson.prophet,hunter: initPerson.hunter,idiot: initPerson.idiot,guard: initPerson.guard,sheriff: initPerson.sheriff}).then(res => {if (res.code == 200) {wx.redirectTo({url: '/pages/room/room?roomid=' + res.data.id,})}})}})

整个项目已上传至GitHub,觉得有用的同学麻烦点个star 谢谢。GitHub狼人杀项目

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。