为什么你抽不到年会特等奖?

COCOS

共 1978字,需浏览 4分钟

 · 2021-02-06

Hello 大家好我是老王,但不是你们家隔壁的。第一次写公众号文章还有点小紧张。

又到一年的年会时。以往公司各种晚会时,到了激动人心的抽奖环节,总是拿个抽奖箱,把所有人名字纸条投进去现场抽取。每次现场「黑幕」「造假」之声不绝于耳,许多中奖绝缘体童鞋纷纷想从老板手里抢过盒子,检查里面是不是根本就没自己名字。

随着 Cocos 的快速发展,我们除了厦门和北京之外,在上海、深圳、成都、旧金山、纽约等各地纷纷建立分公司,再加上年底疫情防控,无法让所有人在线下相聚,所以我们的年会只能转为线上,用传统抽奖箱非但不合时宜,也难以体现一家技术公司的……咳咳……逼格。

于是首席客服老老王就找过来,我正准备拿出 x^y+z 年前给线下沙龙抽奖写的程序换皮交差的时候,领导提出了个问题,像原来这个抽奖程序这么一个一个抽,光抽个三等奖要抽到猴年马月。那行,重新写个吧。

总体而言,我们年会的抽奖过程还是很和谐的,虽然「黑幕」「damn it」的呼声刷满弹幕,但在源码公开给大家审核之后,也就安静了。

为了符合 Cocos 提高行业效率的初衷,我特此献丑,开源出 Cocos Creator 抽奖项目的完整源码和教程,你只要换个皮就可以在自己公司里用了,而且绝无黑幕。

没耐心读教程的直接拉到本文底部点「阅读原文」即可跳转到 github 源码仓库。


完整教程


假设一下需求,三等奖 20 个,二等奖 10 个,那么就各抽 5 次。一等奖 3 个,特等奖 1 个,每次只抽一个突出惊险刺激感。此处修改在 rankShowNames 和 rankCount 里面修改,两者相乘就是该奖项总数。我觉得 Cocos 的抽奖数量还是比较抠的,正确符合「抠抠死」这个音译。土豪公司请随意放飞自我。

接着,为了大家的人身安全考虑,我们需要限制抽到的人不能再抽中后续其他奖项,免得触犯众怒被当街暴打。

如果老板不小心多点了几下,比如抽三等奖的时候多抽了一次,那么抽中的这四个人就和后面的奖项无缘了,所以还是通过程序限制次数。这个奖项的抽选上线次数抽完了,就把抽选按钮隐藏掉。

唯独特例的是特等奖,你们懂的,我顺手写了个特等奖可以抽取 100 次,把公司那些 CxO 挨个拉过来涮一遍,放放血什么的。好吧我什么都没说,什么都不知道,不然财务室就要叫我过去了。

最后,特别注意,一旦程序运行起来之后,就不要手贱去点刷新浏览器,否则程序会重新运行,所有抽奖次数和已获奖人员名单都会重置。这点务必注意。

嗯,其他细节就懒得写了,大家都是程序员彼此理解一下。开工,Creator 启动。
 
将各按钮和抽选 Label 添加到界面中,Creator 没有自带的 ComboBox,我又懒得做一个,那么选几等奖这个工作就还是用按钮吧。

在添加 N 等奖的按钮后,记得按钮的 Click Events 绑定下脚本方法和设置 CustomEventData 参数。例如这边各奖项从低到高分别设为 3/2/1/0。
 
 
代码部分就不多介绍了,自己看注释,大家都是程序员彼此理解一下。做个正常抽奖简单,至于你们真要做点什么黑幕,这篇文章就写不下了,自己酌情处理,注意人身安全。

主要功能就是随机数抽取,点击 N 等奖按钮时候做下界面调整,点击开奖按钮时,获取当前中奖名单和将中奖者从抽奖名单中排除一下。

另外计算数值的时候注意一下范围,保证公平和不要让头尾玩家永远中不到奖就行。


传授一下经验,最好是先代码公示然后再启动抽奖程序。这点我大意了,我们是先抽奖,弹幕狂刷“黑幕”之后,才做代码公示。主要是我也没想到自己会被抽中一等奖。

直播中我自己被抽到了一等奖的时候,当时的弹幕那叫一个精彩。之后 Jare 干脆直接中了特等奖。某不愿意透露姓名的 Jare 同学朋友圈晒奖品时,下面纷纷在留言是不是有 PY 交易。

最后不得不开启了 Boss 现场 Code Review 模式才平息下来。而你想不到各位童鞋还能有什么刁钻问题,我现在终于知道接了这口锅,以后每次抽奖的时候,怕是都要被拉出来轮一遍。可喜可贺,可喜可贺。

所以希望分享给各位有需要的童鞋,若能帮助到大家一点,也算是聊表安慰啦。

懒惰如我的朋友,直接点「阅读原文」跳转到 github 开源仓库获取全部源码 -> 换皮(唯一的jpg文件) -> 更改唯一 js 文件开头的 name 数组 -> 修改各奖项的抽奖次数 -> 运行即可。

再次强调,一旦点了第一次抽奖之后,千万不要去刷新浏览器。

祝大家都能幸运如我,运行自己写的程序都能抽中个一等奖,哈哈。
浏览 21
点赞
评论
收藏
分享

手机扫一扫分享

举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

举报