Closed timelic closed 1 year ago
如果做原生HTML的2D的决斗盘,然后用css 的 perspective给一个小角度转成3D会不会容易实现一点?这只是一个想法。
好的今天下班看下
感觉你这个想法很好呀!我觉得用Babylon不是一个硬性要求,是怎样效果好怎样来。我们后面详细讨论下这个吧。
我先分享下一开始使用Babylon.js的想法:
另外还有一点就是当时选择使用Babylonjs的时候还不是很熟悉前端(包括现在也不敢说熟悉,因为我的主技术栈是rust😂)。
对于哥们的这个想法和制作的demo,我的第一反应是很惊艳,如果抛弃Babylon.js转向html+css的话,我有以下考虑:
我们如果能对上面几点讨论充分的话,应该就可以得到结论了。
谢谢哥们的建议!非常有价值。
已去掉Babylon.js的依赖,采取html+css的方案。
我觉得使用Babylon的好处有几个,网页端3D、
<canvas />
的优秀性能,和更好地支持动画。但如果按照上面的说法,babylon反而不容易实现动画。一套比较完善的动画方案,应该是在状态更新时能自动从旧状态切换到新状态。Babylon的社区没有自带的解决方案吗?
另外,Babylon有一个不可忽视的缺点是,决斗盘和其他UI其实是割裂的。其他UI的开发和决斗盘的开发是两个部分,这两个部分之间的用户交互显得很“疏离”。开发上,其他UI可以用一些组件和HTML的方法,但是决斗盘不行,从绘图、场景搭建到卡片渲染都需要从头实现。
如果是原生HTML,有anime.js、motion等强大的动画库,React也有Spring这种很棒的动画库。但是想把两者进行集成肯定是很难的事情,因为实际上这些动画库都是针对原生网页元素进行开发的,而不是基于Canvas。
如果要用原生网页元素来实现决斗盘,动画会容易实现一点,但那也不是容易的方案。3D的实现会很头疼,而且卡牌在手卡、牌组、场上、墓地之间的运动会是一个三维运动的过程,需要涉及一系列的位置计算。