如何在iPhone上实现切割效果?

时间:2010-11-03 09:19:10

标签: iphone graphics effects cut

我所谈论的“切割”效果可以在着名的iPhone游戏“Fruit Ninja”和“Cut the Rope”中看到,也就是说,当你的手指在屏幕上移动时,手指后面会有一条小道模拟刀具切割效果。

我想知道这种效果的名称是什么以及它是如何实现的。 谁能给我一个提示?

3 个答案:

答案 0 :(得分:2)

这取决于你到目前为止如何实现你的游戏,即使用像Cocoa或使用OpenGL的2D图形。例如,Fruit Ninja使用后者,因为它的果实是3D模型。在这种情况下,您的Render()链通常会绘制所有3D对象,然后将投影更改为正交,以在所有内容之上渲染精灵字体或未转换的2D精灵(如HUD)。这些“精灵”中的每一个都是四边形(形成矩形的2个三角形),其中纹理图像映射到它。一旦将纹理加载到图形存储器中,GPU就可以将其绘制到图形存储器中。非常快,拉伸或旋转它,无需额外费用!

这就是我这样做的方式:一个透明纹理的四边形,看起来像你想要的“条纹”。然后观察触摸点并跟踪之前(或之前多个)触摸坐标。计算两点之间的距离(谷歌“距离公式”)和它的角度向量(在deltaX上只有两个除法运算,deltaY,因为你有距离)。将这些应用到您将用于变换四边形的4x4矩阵,以便您将其拉伸(按距离缩放X),根据矢量旋转它,并将其转换为最近触摸点的X,Y。触摸提起后,您可以轻松收缩/淡化条纹。

您可以使用另一种方法来处理弯曲滑动。它更难,但看起来会更好。使用TRIANGLE STRIP,沿着其长度在顶点上应用“纹理坐标”图像(纹理坐标为0.0到1.0)。然后基于所有那些先前的触摸点,自己设置所有顶点坐标,计算点之间的线和垂直偏移顶点。合理?希望如此!我保证,这种方法很有趣,并不像听起来那么痛苦!

答案 1 :(得分:0)

开始使用CoreAnimation的好地方是WWDC 2010视频。

要在iTunes中访问它,系统会要求您使用您的开发帐户登录。

答案 2 :(得分:0)

GLPaint样本可能会给你一些提示。