我所谈论的“切割”效果可以在着名的iPhone游戏“Fruit Ninja”和“Cut the Rope”中看到,也就是说,当你的手指在屏幕上移动时,手指后面会有一条小道模拟刀具切割效果。
我想知道这种效果的名称是什么以及它是如何实现的。 谁能给我一个提示?
答案 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样本可能会给你一些提示。