Project1
标题: 【笔记】小轮盘,大问题,转盘小游戏的几个编写思路 [打印本页]
作者: Zeldashu 时间: 2022-3-2 16:40
标题: 【笔记】小轮盘,大问题,转盘小游戏的几个编写思路
本帖最后由 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],遇到数组末尾时还得考虑进位退位的关系非常麻烦。
一个简单的思路就是用另外两个数进行记录,而非用整个数组。一个是序列号(当前在哪个区间),另一个是并列的中奖区间有多少个。
只要能求出序列号,然后根据【并列的中奖区间】的剩余数目,排列出对应的数组,再进行指针位置的判定,即可解决问题。
-
QQ图片20220302152655.png
(51.74 KB, 下载次数: 5)
-
QQ图片20220302153749.png
(22.73 KB, 下载次数: 3)
-
QQ图片20220302155940.png
(80.34 KB, 下载次数: 2)
作者: 喵呜喵5
时间: 2022-3-2 18:56
思路反了
怎么设计抽奖系统呢?
玩家抽奖九次没中时,第十次给他必中,让他不要那么沮丧
玩家看到一个99格不中只有1格中奖的轮盘试试单抽出奇迹,然后真抽中了,让他感觉自己福星高照
所以,轮盘的结果其实在开始转动前就已经确定了,
你实际要做的不是根据位置确定结果,而是根据结果挑选轮盘停下来的位置而已
作者: RyanYe
时间: 2022-3-2 19:19
本帖隐藏的内容需要积分高于 222222 才可浏览,您当前积分为 26
隐藏了什么不得了的内容吗
作者: 鼠曲草
时间: 2022-3-2 22:22
记录角度的话,其实正转反转是差不多的,只要再算一下角度差再分类讨论就行了。
尝试做了一下,
转盘.rar
(1.08 MB, 下载次数: 21)
改一下参数就能控制正转反转了。
欢迎光临 Project1 (https://rpg.blue/) |
Powered by Discuz! X3.1 |