ios - Swift 中图像/剪影的轮廓路径

标签 ios iphone swift sprite-kit

我正在为 iPad/iPhone 使用 Xcode/Swift 开发一款游戏。

我需要做的是获取图像/剪影的轮廓路径,以便我可以沿着图像/剪影的轮廓进行动画处理。这是为了创建类似激光切割的效果,就像您在电影中看到的那样,当他们用激光切割机打破门/窗时。

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

在 SpriteKit 中,我尝试使用 SKPhysicsBody,然后使用 Alpha 来创建轮廓。这给了我轮廓但不是路径,所以我不能沿着那条线制作动画。 实际上,当启用“.showsPhysics”时,我得到了我需要的行,但仍然不是我可以用于动画的行。

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

我正在用 Swift 编写代码,如有任何建议,我将不胜感激。

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

enter image description here

最佳答案

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

关于ios - Swift 中图像/剪影的轮廓路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32538700/

相关文章:

ios - 主从 View ,在详细 View 中获取 "back"调用

iPhone : How to change gradient color for negative values in Core Plot?

swift - 如何在 Swift 后台一段时间后呈现 UIViewController?

iOS 如何理解符号错误

ios - 如何在swift4.0中使用 ReactiveCocoa

ios - 在 Swift 中循环遍历 NSMutableArray

ios - 将一个 NSMutableArray 拆分为两个,以便我可以在 UITableView 的每个部分中设置每个

iphone - 如何在 iPhone 上使用 Quartz/Core Graphics 显示国际口音

swift - 在 NSOutlineView 中使用 Swift 结构

arrays - 如何迭代数组并将每个元素与 Swift 中的其他元素进行比较