【小程序】小程序上实现刮刮乐抽奖效果,求思路?
回答
平面上设置N个监测点
全部滑过或者 超过 多少百分比的点被滑过( 看具体策略 )
就表示已经刮开了
wxml部分:
<view class="aa" style="">
<!--注意:同一页面中的 canvas-id 不可重复,如果使用一个已经出现过的 canvas-id,该 canvas 标签对应的画布将被隐藏并不再正常工作--> <canvas canvas-id="myCanvas" class="myCanvas"
disable-scroll="false"
bindtouchstart="touchStart"
bindtouchmove="touchMove"
bindtouchend="touchEnd"
style="width:400rpx;height:200rpx;background:url('{{img}}')center ">
</canvas>
</view>
js部分:
const ctx = wx.createCanvasContext('myCanvas')
Page({
data: {
img:'../../images/mylogo.jpg',
},
startX: 0, //保存X坐标轴变量
startY: 0, //保存X坐标轴变量
onReady:function() {
ctx.setFillStyle('#EFEFEF')
ctx.fillRect(0, 0, 240, 150.75)
ctx.draw()
},
touchStart:function(e){
var startX1 = e.changedTouches[0].x
var startY1 = e.changedTouches[0].y
ctx.save(); //保存当前坐标轴的缩放、旋转、平移信息
ctx.beginPath() //开始一个路径
ctx.clearRect(startX1, startY1, 10, 10);
ctx.restore(); //恢复之前保存过的坐标轴的缩放、旋转、平移信息
},
touchMove:function(e){
var startX1 = e.changedTouches[0].x
var startY1 = e.changedTouches[0].y
ctx.save(); //保存当前坐标轴的缩放、旋转、平移信息
ctx.moveTo(this.startX, this.startY); //把路径移动到画布中的指定点,但不创建线条
ctx.clearRect(startX1, startY1,10,10); //添加一个新点,然后在画布中创建从该点到最后指定点的线条
ctx.restore() //恢复之前保存过的坐标轴的缩放、旋转、平移信息
this.startX = startX1;
this.startY = startY1;
//只是一个记录方法调用的容器,用于生成记录绘制行为的actions数组。context跟<canvas/>不存在对应关系,一个context生成画布的绘制动作数组可以应用于多个<canvas/>
wx.drawCanvas({
canvasId: 'myCanvas',
reserve: true,
actions:ctx.getActions() // 获取绘图动作数组
})
},
})
营销组件 pfan123/wx-market 里面包含了微信小程序刮刮乐的实现,具体的你可以看一下呢,记得star
以上是 【小程序】小程序上实现刮刮乐抽奖效果,求思路? 的全部内容, 来源链接: utcz.com/a/78505.html