Crayon Physics Deluxe是最近问世的一款商业游戏。观看主链接上的视频,以了解我在说什么。
它使您可以绘制形状并使它们以适当的物理方式使用react。目标是使用构建的设备和形状将球移到屏幕上的星星。
虽然该游戏基本上是流行的Box2D Physics Engine的包装,但它确实具有一个我很好奇如何实现的功能。
它的绘图非常像蜡笔。您会看到蜡笔的纹理,并且随着它的绘制,其厚度和暗度都发生变化,就像实际蜡笔绘制的样子一样。
(来源:kloonigames.com)
(来源:kloonigames.com)
背景纹理可以免费获得here。
将使用什么样的算法以类似于蜡笔的方式渲染这些线条?它是简单的纹理,具有随机的厚度和暗度吗?还是发生了更多事情?
我记得(很久以前)阅读了有关这样做的算法的简短描述:
使用
作为线的一般形式,您可以将线段在随机点上一分为二,然后将其稍微远离其位置移动(该变化取决于点到四肢的距离)。递归/随机重复。 这样,您的行就不是“完美的”(直线) 对于给定的段,您可以通过扩展一个或另一个末端(或两个末端)来稍微“超调”一点。 这样,您就不会拥有完美的关节。如果我没记错的话,最好的办法就是扩展原始肢体,但是如果想明显地分割它们,可以对子区段进行此操作。 用图案/印章画线还存在(已经提到过)以不同的开始和结束不透明度(模仿绘图结束时释放笔的趋势)进行绘图的可能性您可以在行的开头和结尾使用不同的大小作为印章(也可以模仿绘图末尾释放笔的趋势)。为了达到相同的效果,您还可以绘制线条两次,其中一个末端的变化很小(在这种情况下,请注意Alpha,因为线条会绘制两次)最后,对于给定的行,您可以多次进行先前的修改(即,绘制两次行,并使用不同的变体):如果人犯了一些错误,往往会重复行。
问候