为什么你抽不到年会特等奖?COCOS共 1978字,需浏览 4分钟 ·2021-02-06 08:15 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 数组 -> 修改各奖项的抽奖次数 -> 运行即可。再次强调,一旦点了第一次抽奖之后,千万不要去刷新浏览器。祝大家都能幸运如我,运行自己写的程序都能抽中个一等奖,哈哈。 浏览 39点赞 评论 收藏 分享 手机扫一扫分享分享 举报 评论图片表情视频评价全部评论推荐 详解中奖概率逻辑:为什么你中不了特等奖(附原件)产品的技术小课0恭喜你!抽中了……瑶台月下0为什么我抓不到baidu的数据包最近,有位读者问起一个奇怪的事情,他说他想抓一个baidu.com的数据包,体验下看包的乐趣。 但却发现“抓不到”,这就有些奇怪了。 我来还原下他的操作步骤。 首先,通过ping命令,获得访问百度时会请求哪个IP。 $ pin...你赚不到"大钱"的原因!程序源代码0你为什么不用TS前端精髓0公司年会嵌入式Linux0你为什么喜欢VIM?嵌入式Linux0为什么你总是 CRUD,你想过没有?程序员cxuan0为什么有时候明明有车,你却永远叫不到?滴滴司机调度系统实践极客挖掘机0为什么你总是 CRUD,你想过没有?程序员书单0点赞 评论 收藏 分享 手机扫一扫分享分享 举报