定向光

11

我正在开发一个需要方向光的游戏想法(2D)。基本上,我想添加可以移动的光源,并使光线与场景中的其他物体相互作用。

目前我在进行一些测试,使用传感器(box2d)和ccDrawLine来实现类似于我想要的效果。基本上,我从某个点发送一堆传感器,在射线检测到碰撞时获取终点并在传感器上绘制直线。

只是想知道这是否是一个好的方法,或者是否有其他更好的选项来构建这样的内容?

此外,我想知道如何在该区域(传感器区域)产生光效果,以提供更好的外观效果。有什么建议吗?


你能提供更多关于你想要产生什么样的光效的细节吗?例如,灯光是否应该投射阴影或在某些区域被遮挡?在场景中的物体上,你想要有高光反射还是漫反射光照?等等。 - Jarrod Smith
想象一种像灯笼一样的效果,其中光线在灯笼的范围末端变暗。 - Sebastián Castro
3个回答

1

我可以想到一种很酷的效果,你可以应用它。在光可见的区域内放置一些粒子,像闪烁的火花缓慢地落下,就像这张图片上的效果。

无论如何,任何解决这个问题的方法都需要使用碰撞检测,所以如果你只有有限数量的box2d对象,那么你的方法是相当不错的。

当你有大量的box2d对象时,我会考虑另一种方法,即将屏幕渲染成纯色的纹理(应该很快),并对生成的纹理进行光线追踪,以找到受光影响的像素。这样,你就受到分辨率的限制,而不是box2d对象的数量。


0
嗯,有趣的问题。Cocos2D提供了一些非常灵活的遮罩效果。您可以使用渐变遮罩覆盖在对象上,其位置取决于“光”的位置,从而使您的对象看起来像是被光线染色。

0

这里有一个关于2D空间中动态和静态光源的优秀源代码链接。 虽然是Ruby代码,但很容易理解,因此将其移植到Obj-C/Cocos2D/box2D应该不会花费太长时间。

我真心希望它能像帮助我一样帮助你。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接