Swift中图像/轮廓线的概述路径

6

我正在为iPad/iPhone使用Xcode/Swift编写游戏。

我需要做的是获取图像/剪影的轮廓路径,以便我可以沿着图像/剪影的轮廓进行动画。这样可以创造出类似于激光切割的效果,就像在电影中看到的那样,当他们用激光刀穿过门/窗户时。

仅将其绘制为Beizer路径是行不通的,因为我需要针对一堆图像/剪影进行此操作。如果可能的话,我更愿意将图像添加到我的项目中,并在代码中进行轮廓处理,这样我就可以轻松地扩展更多的形状和大小。

在SpriteKit中,我尝试使用SKPhysicsBody,然后使用Alpha创建轮廓。这给了我轮廓,但不是作为路径,所以我不能沿着那条线进行动画。

实际上,在启用“.showsPhysics”时,我得到了我需要的线条,但仍然不能用于动画。

有没有办法使用/修改“.showsPhysics”方法或将PhysicsBody反转为路径?

我正在使用Swift进行编码,欢迎提供建议。

这是我需要的示例,我需要将蓝色线作为动画路径。

enter image description here

1个回答

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)

图片:

enter image description here

结果:

enter image description here


1
嗨,王宇东,感谢您的回答,但我已经熟悉这个知识点了。我正在寻找的是一种获取轮廓路径的方法,就像使用贝塞尔路径一样,这样我就可以沿着该路径进行动画制作。具体而言,我需要创建一个沿着图像轮廓的路径,就像使用物理体的纹理一样,但需要生成一个路径。 - Chrissy McBeal
@ChrissyMcBeal 很抱歉回复晚了。我不确定是否可以从物理体中获取路径,但我想了解更多关于“我可以沿着这条路径进行动画”,也许我们可以找到另一种方法来实现此目的。 - WangYudong

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