Ios 将边框适配到“;“真正的”;图像,白色边框切割SpriteKit物镜c

Ios 将边框适配到“;“真正的”;图像,白色边框切割SpriteKit物镜c,ios,objective-c,sprite-kit,Ios,Objective C,Sprite Kit,我现在正在学习Spritekit,我想检测两个图像之间的碰撞。 以一张有趣的图片为例: 图像仍然是一个矩形。如何使该矩形适合原始面?我不希望在碰撞图像的矩形时发生碰撞,我希望它在实际碰撞人脸的黑线时发生碰撞 我希望你能理解我的问题 谢谢你的帮助 编辑: 如果图像周围有白色边框,你可以在预览中编辑它,并使用Alpha去除周围的所有白色 我认为在这种情况下,sprite的碰撞方法会与黑线发生碰撞。这里有两个问题: 您可能希望将SKPhysicsBody设置为围绕SKSpriteNode的路径。例如,

我现在正在学习Spritekit,我想检测两个图像之间的碰撞。 以一张有趣的图片为例:

图像仍然是一个矩形。如何使该矩形适合原始面?我不希望在碰撞图像的矩形时发生碰撞,我希望它在实际碰撞人脸的黑线时发生碰撞

我希望你能理解我的问题

谢谢你的帮助

编辑:

如果图像周围有白色边框,你可以在预览中编辑它,并使用Alpha去除周围的所有白色


我认为在这种情况下,sprite的碰撞方法会与黑线发生碰撞。

这里有两个问题:

  • 您可能希望将
    SKPhysicsBody
    设置为围绕
    SKSpriteNode
    的路径。例如,类似于以下内容的内容非常接近:

    UIBezierPath *path = [UIBezierPath bezierPathWithOvalInRect:CGRectMake(-40, -22, 80, 39)];
    node.physicsBody = [SKPhysicsBody bodyWithPolygonFromPath:path.CGPath];
    
    这可能不太正确,所以请随意调整这些值,但希望它能说明这个想法:找到一条定义边界的路径,然后相应地设置
    physicsBody

    如果要查看物理大纲,请在
    SKView
    上设置
    showsPhysics

  • 您可能希望遮罩图像,使图像的角点透明(即alpha为零):

    因此,当它位于彩色背景上时,它看起来像:

    通过掩蔽角落,您不必担心白色角落会掩盖场景中的其他内容


  • 你能解释一下吗?我在预览中打开图片时添加了一个屏幕,我只是不知道alpha?所以在图片中,单击第二个按钮(图片中突出显示的蓝色按钮的左侧)。这是阿尔法按钮。下一步,点击你笑脸外的白色区域,拖动鼠标一点,直到你想要删除的白色突出显示。按backspace。如果您对结果满意,请按save。如果没有,您可以随时撤消。我可以以某种方式使实际物理体的边界可见吗?@Robin-在
    SKView
    上打开
    showsPhysics
    。注意,当我这样做时,我注意到我的
    路径不太正确,所以我相应地更新了它。