加入我们,或者,欢迎回来。
您需要 登录 才可以下载或查看,没有帐号?注册会员
x
本帖最后由 Zeldashu 于 2022-3-2 16:43 编辑
在亲自尝试之前,我一直认为用纯事件写转盘小游戏不是什么难事,事实证明,我还是太高估自己的智商了。
这玩意相信大家都不陌生,简单来说就是当你点击开始后,这个转盘它会随机转上那么几圈,然后自动或取决于你点击,那么它会逐渐停下来。
最终旋转停止后,指针指向的区间就代表你获得的奖励——谢谢参与。
当然,这是常规的转盘玩法,在此基础上也会延伸出类似:
思路 预设一个数组,假如你想让轮盘有四个分区,那就[0,0,0,0],8个就[0,0,0,0,0,0,0,0],通过公式: 图片旋转角度 / (360 / 总分区数) = 指针最终旋转到的区域 把【指针所在的区域】代入到预设的数组,判定其中的数值,例如0或1,则可得出对应分区是否为 中奖区。 方法大致和上一样,难点在于如果逆时针旋转,用上述公式会得出相反的顺序,例如[1,2,3]变为了[3,2,1]。 为此可以设置另一个反向数组,用最终得出的结果的值,进行代入,而求出正确的顺序,再对比指针和轮盘的对应关系。 还有一个难点就是,因为中奖区也在旋转,所以中奖区的位数也会一直推荐,特别是你的中奖区呈现并列关系时,例如[0,1,1,0,0],随着旋转它可能变为[0,0,1,1,0],遇到数组末尾时还得考虑进位退位的关系非常麻烦。 一个简单的思路就是用另外两个数进行记录,而非用整个数组。一个是序列号(当前在哪个区间),另一个是并列的中奖区间有多少个。 只要能求出序列号,然后根据【并列的中奖区间】的剩余数目,排列出对应的数组,再进行指针位置的判定,即可解决问题。 游客,本帖隐藏的内容需要积分高于 222222 才可浏览,您当前积分为 0 |