我使用下面的代码创建了一个旋转轮
<script>
var spinWheel = new Winwheel({
'numSegments' : 4,
'segments' :
[
{'fillStyle' : '#eae56f', 'text' : 'Prize 1'},
{'fillStyle' : '#89f26e', 'text' : 'Prize 2'},
{'fillStyle' : '#7de6ef', 'text' : 'Prize 3'},
{'fillStyle' : '#e7706f', 'text' : 'Prize 4'}
]
});
我正在使用这个JS库 http://dougtesting.net/winwheel/examples/basic_code_wheel
我想要做的是创建一个功能,让我可以在'滚轮'旋转后更好地控制结果?如果您有解决方案或可以指向我现有的脚本,我将不胜感激。谢谢!
答案 0 :(得分:1)
快速浏览代码表明停止角度可以是硬编码的,也可以是随机选择的。
要对其进行硬编码,您需要在初始化stopAngle
时设置属性winwheel
。如果你这样做,它总是停在那个角度。因此,您需要每次重新初始化winwheel
,或者进入插件的源代码以添加自己的方法来设置角度。
现在针对为每个细分设置加权概率的问题,您可以通过任何方式进行偏差,从而使概率偏向您想要的细分。一个例子可能是,为每个段分配从1到100的数字,例如,段1得到1到50(50%),段2得到51到60(10%)...然后获得1到100之间的随机数并适当选择细分。
答案 1 :(得分:0)
正如Vj-所提到的,有能力控制旋转的结果,这是通过在旋转开始之前设置动画的stopAngle来完成的。
本教程http://dougtesting.net/winwheel/docs/tut14_setting_the_prize详细介绍了执行此操作的两种方法。
第一个是在页面上的一些JavaScript代码中计算这个,另一个 - 更安全的方式 - 是让服务器端进程计算这个并返回用户赢得的奖品数。服务器端进程也可以执行诸如更新数据库以记录赢得的奖金等内容。
同样如Vj所说,基于百分比进行选择的快速简便方法是选择1到100之间的随机数,然后根据选择分段的数字。如果段1应该在50%的时间内获胜,那么如果数字在1到50之间,则选择段1。
如果第2段应该在25%的时间内获胜,那么如果随机数在51到75之间,则选择第2段作为获胜者,等等。