Project1

标题: 【笔记】小轮盘,大问题,转盘小游戏的几个编写思路 [打印本页]

作者: Zeldashu    时间: 2022-3-2 16:40
标题: 【笔记】小轮盘,大问题,转盘小游戏的几个编写思路
本帖最后由 Zeldashu 于 2022-3-2 16:43 编辑


在亲自尝试之前,我一直认为用纯事件写转盘小游戏不是什么难事,事实证明,我还是太高估自己的智商了。




什么是转盘小游戏?



这玩意相信大家都不陌生,简单来说就是当你点击开始后,这个转盘它会随机转上那么几圈,然后自动或取决于你点击,那么它会逐渐停下来。

最终旋转停止后,指针指向的区间就代表你获得的奖励——谢谢参与。


当然,这是常规的转盘玩法,在此基础上也会延伸出类似:

1、指针转,盘不转
2、指针不转,盘转
3、指针和盘反向转
4、老虎机                                                        等花样。

下面我们就来说说如何在rm里用纯事件写出这玩意。



思路

1、常规型轮盘
即,轮盘转或指针转型

预设一个数组,假如你想让轮盘有四个分区,那就[0,0,0,0],8个就[0,0,0,0,0,0,0,0],通过公式:
图片旋转角度 / (360 / 总分区数) = 指针最终旋转到的区域

把【指针所在的区域】代入到预设的数组,判定其中的数值,例如0或1,则可得出对应分区是否为 中奖区。

2、反着转型轮盘
即,轮盘和指针反着转

方法大致和上一样,难点在于如果逆时针旋转,用上述公式会得出相反的顺序,例如[1,2,3]变为了[3,2,1]。

为此可以设置另一个反向数组,用最终得出的结果的值,进行代入,而求出正确的顺序,再对比指针和轮盘的对应关系。

还有一个难点就是,因为中奖区也在旋转,所以中奖区的位数也会一直推荐,特别是你的中奖区呈现并列关系时,例如[0,1,1,0,0],随着旋转它可能变为[0,0,1,1,0],遇到数组末尾时还得考虑进位退位的关系非常麻烦。

一个简单的思路就是用另外两个数进行记录,而非用整个数组。一个是序列号(当前在哪个区间),另一个是并列的中奖区间有多少个。

只要能求出序列号,然后根据【并列的中奖区间】的剩余数目,排列出对应的数组,再进行指针位置的判定,即可解决问题。


下面都是些很长还没乱用的废话。

QQ图片20220302152655.png (51.74 KB, 下载次数: 5)

QQ图片20220302152655.png

QQ图片20220302153749.png (22.73 KB, 下载次数: 3)

QQ图片20220302153749.png

QQ图片20220302155940.png (80.34 KB, 下载次数: 2)

QQ图片20220302155940.png

作者: 喵呜喵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