众所周知,游戏内看向太阳的时候通常会有光晕效果,特别是3D游戏内,比如这样的效果! 。
据我观察,cocos论坛目前还未有类似的讨论和实现,最近我做了一种简便易于扩展和修改的效果,趁着这次v7投稿,抛砖引玉,分享给大家。
1,先说原理,原理比较简单,用一个Node模拟定位一个太阳,然后将3D坐标计算到2D的canvas上,然后贴上几张sprite计算好位置就成了。
2,随便准备2张美术图片(也可以是多张,根据自己的美术项目需求来)这是我自己随手P的图片:
3, 在编辑器内放置太阳和cavas图片,如图:
4, 然后在update里面,计算太阳在2D屏幕内rect的位置,之后计算图片的位置(我这里就准备了2种光晕的图片),我这里就用了的圆形图片修改了颜色和大小;其实有很多不一样的光晕实现,有棱形的图片,也有辉光的太阳图片等等。这是核心代码:
红框部分可以看出图片是平均分布的,其实不平均的效果会更好。
最后的效果:
当然网上能找到其他更丰富的素材,例如:
思考:
1,如果有遮挡或者在屋内的情况就需要射线检测遮挡碰撞,这里就不讨论了。
2,3D空间转2D的 canvas位置还有一些其他类似情况,例如身后或者空中的怪物攻击自己时候屏幕有个位置标记的情况。
商店地址:https://store.cocos.com/app/detail/6231