我正在为Xcode / Swift开发适用于iPad / iPhone的游戏。
我需要做的是获取图像/轮廓的轮廓路径,以便我可以沿着图像/轮廓的轮廓设置动画。这就是为了创造一种激光切割效果,当你用激光切割机突破门/窗时,你会在电影中看到这种效果。
将它绘制为Beizer路径是行不通的,因为我需要为一堆图像/轮廓执行此操作。如果可能的话,我宁愿只是将图像添加到我的项目中并在代码中进行概述,这样我就可以轻松扩展更多的形状和大小。
在SpriteKit中,我尝试使用SKPhysicsBody,然后使用Alpha创建轮廓。这给了我那个轮廓但不是一条路径,所以我不能沿着这条线动画。 实际上当启用“.showsPhysics”时,我得到了我需要的线,但仍然不是我可以用于动画的线。
有没有办法可以使用/修改“.showsPhysics”方法或将PhysicsBody转换为路径?
我在Swift中编码,任何建议都会受到赞赏。
这是我需要的一个例子,我需要蓝线作为动画的路径。
答案 0 :(得分:0)
SpriteKit有一种从纹理内容创建物理实体的方法。请阅读bodyWithTexture:size:以获取更多信息,尤其是讨论会话。您应该考虑性能和准确性之间的平衡。
如下图所示,这是一个使用bodyWithTexture:size:
,
let texture = SKTexture(imageNamed: "rex")
let rex = SKSpriteNode(imageNamed: "rex")
rex.physicsBody = SKPhysicsBody(texture: texture, size: texture.size())
rex.position = CGPoint(x:CGRectGetMidX(self.frame), y:CGRectGetMidY(self.frame));
rex.physicsBody?.dynamic = false // This line is just for demo
self.addChild(rex)
图片:强>
<强>结果:强>