这个话题应该放游戏区吧,不过也有一点技术的成分,就丢这里
最近呢,被朋友安利了一款游戏叫《原神》,出来蛮久了,反正就抽空去体验了一下(拿别人的小号),游戏方面不多评论,只是对抽卡的过程很好奇,看了B站关于原神抽卡概率的推测,得出一个相对准确的数据:
金 1.6% 紫 13.0%
up池子也一样,只是有保底机制,不展开说了
基于上述统计数据,我想自己尝试做一款草根版的抽卡器。先github看了一下,果然早有大佬写了,在这里:
我赶紧fork了一份,把里面的图片视频资源笑纳了
接着,我发现这个大佬的抽卡动画,直接用的视频,那如果我跟他一样照搬过来,岂不是一点意思都没有。所以决定重写动画部分,顺便,概率部分的逻辑也自己做了
之前有一点webgl基础,用过three.js和d3,稍稍琢磨了一下,就用three.js吧,官方案例很多,也比较容易上手。本来的话,也想用unity3D搞点炫酷的特效,尝试了一番结果做得不满意(3D还是有门槛啊!),so放弃了。那就只能用最土的canvas渲染来做效果了
最终效果如下:
or
虽然东西做得很一般,不过麻雀虽小五脏俱全,像三维动画、天空盒、十连抽保底机制等等都基本实现了,技术方面还用到了lensflare光晕特效,和动画类库tween.js,这两部分知识感兴趣的朋友可以自行研究,我也只是入门阶段,能写出更华丽效果的小伙伴可以帮忙完善一下这个平民版抽卡器,代码已经上传到gitee(因为github网速有点垮,所以转战码云了),地址如下:
特别要说一下这万恶的天空盒图片,找了蛮久才找到很合适的,本来用的是画质偏高效果更好的图,只是小破站带宽不给力,所以没法放到线上去耍,这里有本地的截图:
东西做得比较粗糙,我这边PC端和手机端都试了一下,没有特别重大的缺陷,就是网站小水管,有时候会卡得打不开。放点截图吧:
如果遇到bug或者武器人物星级不对的地方,可以提issue,或者请忽略吧
最后,good luck and enjoy it ~