ios - 快速检测不透明空间的两个节点之间接触的方法?

标签 ios objective-c sprite-kit

我想看看一个圆是否接触到下图的不透明部分,而不仅仅是边界框(这是一个矩形):

enter image description here

有没有简单的方法可以做到这一点?

最佳答案

你可以画一个 UIBezierPath在你的 View 上并用图案图像填充它,即你的草。

获得贝塞尔曲线路径后,使用 - (BOOL)containsPoint:(CGPoint)point 方法确定您的点是进还是出。

在一个项目中,我需要绘制多个形状,一些是基本的,另一些是复杂的。为了帮助我,我制作了一个显示图像的 mac 程序,在该图像中,我可以通过单击某些点来细化任何复杂的形状。 形状关闭后,程序会将绝对坐标转换为基于 View 大小的坐标,并将它们导出为包含 CGPoint 数组的 Plist 文件。

在 iOS 应用程序中,我只需导入数组并使用点数组来创建我的 UIBezierPath。 如果您需要的不仅仅是线条,那么您可能想要在 plist 中添加除 CGPoint 之外的其他内容,但我想您明白了。

关于ios - 快速检测不透明空间的两个节点之间接触的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26618008/

相关文章:

ios - glkView 和更新方法有什么区别?

ios - 如何以编程方式设置划分为多个部分的静态表中的单元格

ios - 如何在 CoreData 中为包含 NSArray 的二进制数据创建 NSPredicate?

ios - 如何在布局中设置填充宽度和自定义高度

objective-c - 维护从 xib 加载的自定义单元格内的按钮状态

swift - SpriteKit SKSequence 使 UI 按钮出现

android - 适用于 Spritekit

swift - 同时按 x 和 y 移动节点

ios - Objective-C中的bool、Boolean、BOOL有区别吗?

ios - 无法在 Storyboard 上引用 UILabel