const app = getApp()
const config = require('../../utils/config')
Page({
/**
* 页面的初始数据
*/
data: {
baseNum: 5, //基数,越大投中几率越低
bigMin: 3, //出现大号的基数
fruits: [], //转盘列表
fruitsBet: [], //投注列表
recharge: [{
money: 10
}, {
money: 20
}, {
money: 50
}, {
money: 100
}, {
money: 200
}, {
money: 500
}], //充值额度列表
activeLeft: 0,
activeTop: 0,
setInterval: 0, //定时器
activeIndex: 0,
win_score: 0, //得分
total_score: 50, //总分
score: 50, //初始分数
bet: 0, //投注
betIndex: 0, //投注下标
betID: null, //投注列表下标
isStop: false, //判断是否执行完毕
isOne: false, //判断没执行完不可重复点击开始
czIndex: 0, //充值额度下标
isRecharge: false, //显示充值列表
timerID: 0, //定时器
winNum: 0, //中奖次数
runNum: 0, //运行次数
longtap:0,//长按计时器
},
//选择额度
rechargeFun(e) {
this.setData({
czIndex: e.currentTarget.dataset.id
})
},
//关闭充值弹窗
closeFun() {
this.setData({
isRecharge: false
})
},
//确定充值
confirmFun() {
let total_score = this.data.total_score + this.data.recharge[this.data.czIndex].money;
this.setData({
total_score,
isRecharge: false
})
},
//选择投注项
select(e) {
this.setData({
betIndex: e.currentTarget.dataset.index,
betID: e.currentTarget.dataset.id,
})
},
//减投注
subBet() {
if (this.data.isOne) return;
let betID = this.data.betID;
if (betID == null) return;
let fruitsBet = this.data.fruitsBet;
let bet = fruitsBet[betID].bet;
let totalBet = 0;
for (let i = 0; i < fruitsBet.length; i++) {
totalBet = totalBet + fruitsBet[i].bet
}
if (totalBet > 0 && bet > 0) {
bet--;
fruitsBet[betID].bet = bet;
this.setData({
fruitsBet
})
}else{
clearInterval(this.data.longtap)
}
},
//加投注
addBet() {
if (this.data.isOne) return;
let betID = this.data.betID;
if (betID == null) return;
let fruitsBet = this.data.fruitsBet;
let total_score = this.data.total_score;
let bet = fruitsBet[betID].bet;
let totalBet = 0;
for (let i = 0; i < fruitsBet.length; i++) {
totalBet = totalBet + fruitsBet[i].bet
}
if (totalBet < total_score) {
bet++;
fruitsBet[betID].bet = bet;
this.setData({
fruitsBet
})
} else {
let that = this;
clearInterval(this.data.longtap)
wx.showModal({
title: '提示',
content: '总分不足,请充值!',
success: function (res) {
if (res.confirm) {
that.setData({
isRecharge: true
})
}
}
})
}
},
//长按减
subBetLong(e) {
let that = this;
let longtap = setInterval(res =>{
that.subBet()
},100)
that.setData({longtap})
},
//长按加
subBetBigLong(e) {
let that = this;
let longtap = setInterval(res =>{
that.addBet()
},100)
that.setData({longtap})
},
//触摸结束
touchend(e){
clearInterval(this.data.longtap)
},
//触摸被打断,如来电,弹窗
touchcancel(){
clearInterval(this.data.longtap)
},
//开始运行
startPlay() {
let that = this;
let baseNum = that.data.baseNum; //基数,越大投中几率越低
let fruits = that.data.fruits; //转盘数组
let flen = fruits.length;
let fruitsBet = this.data.fruitsBet; //投注数组
let step = flen * 2 + parseInt(Math.random() * 30); //随机数,转盘焦点定位
let index = that.data.activeIndex; //转盘数组下标
let win_score = that.data.win_score; //得分
let total_score = that.data.total_score + win_score; //得分计入到总分
let betNum = 0;
let winNum = that.data.winNum; //抽中次数
let runNum = that.data.runNum; //运行次数
let newFruit = fruitsBet.slice().sort(that.compareDown("bet","score")).slice(0,5); //投注倒序
let newFruitZp = []; //新数组-转盘
let newFruitMbIg = []; //新数组-大号
let newFruitMin = []; //新数组-小号
if (that.data.isOne) return;
if (total_score == 0) {
wx.showModal({
content: '总分不足,请充值!',
success: function (res) {
if (res.confirm) {
that.setData({
isRecharge: true
})
}
}
})
return;
}
fruitsBet.forEach(aone => {
betNum = betNum + aone.bet;
})
total_score = total_score - betNum;
if (betNum == 0) {
wx.showToast({
title: '请先投注',
icon: 'none'
})
return
}
if (total_score < 0) {
wx.showModal({
content: '总分不足,请充值!',
success: function (res) {
if (res.confirm) {
that.setData({
isRecharge: true
})
}
}
})
return
}
fruits.forEach(d => {
if(d.index==='7'){
newFruitZp.push(d)
}
newFruit.forEach(e => {
if (d.index == e.index) {
newFruitZp.push(d)
}
})
})
newFruitZp.forEach(f => {
if (f.size == 'b') {
newFruitMbIg.push(f)
} else {
newFruitMin.push(f)
}
})
if (runNum % baseNum == 0) {
step = flen * 2 + parseInt(Math.random() * 35 );
} else {
let descid = 0;
let bigMin = that.data.bigMin;
let seleID = 0;
let seleScore = 0;
if (runNum % bigMin == 0) {
descid = parseInt(Math.random() * newFruitMbIg.length + 1) - 1;
seleID = newFruitMbIg[descid].index;
seleScore = newFruitMbIg[descid].score;
} else {
descid = parseInt(Math.random() * newFruitMin.length + 1) - 1;
seleID = newFruitMin[descid].index;
seleScore = newFruitMin[descid].score;
}
fruits.forEach((item, i) => {
if (item.index == seleID && item.score == seleScore) {
if (i < index) {
step = flen * 3 - (index - i) + 1;
} else {
step = flen * 2 + i - index + 1;
}
}
})
}
that.setData({
betIndex: 0,
betID: null,
total_score,
win_score: 0,
isStop: false,
isOne: true,
runNum: runNum + 1
})
clearInterval(that.data.setInterval)
function start() {
that.setData({
activeLeft: fruits[index].left,
activeTop: fruits[index].top
})
step--;
if (step == 0) {
clearTimeout(that.data.timerID);
let activeLeft = that.data.activeLeft;
let activeTop = that.data.activeTop;
let win_score = 0;
fruits.forEach(item => {
if (activeLeft == item.left && activeTop == item.top) {
fruitsBet.forEach(obj => {
if (item.index == obj.index && obj.bet != 0) {
win_score = obj.bet * item.score;
that.runVideo('cloud://laqtxy520-obj.6c61-laqtxy520-obj-1300182137/video/3.mp3');
that.setData({
win_score,
winNum: winNum + 1
})
}
})
}
})
if (win_score == 0) {
that.runVideo('cloud://laqtxy520-obj.6c61-laqtxy520-obj-1300182137/video/1.mp3');
}
that.setData({
isStop: true,
isOne: false
})
return;
}
index++;
if (index == fruits.length) {
index = 0;
}
that.setData({
activeIndex: index
})
that.runVideo('cloud://laqtxy520-obj.6c61-laqtxy520-obj-1300182137/video/lhjyy.mp3');
that.data.timerID = setTimeout(start, 1800 / step);
}
start(step
- 1
- 2
前往页