gpt4 book ai didi

swift - 如何使用 CGPath 为该图像制作 SKPhysicsBody?

转载 作者:可可西里 更新时间:2023-11-01 01:08:55 28 4
gpt4 key购买 nike

我正在尝试使用 CGPath 多边形为这个 SKSpriteNode 制作一个 SKPhysics 主体。

enter image description here

问题是,当我检查此节点和播放器节点之间的碰撞时,执行了 didBeginContact 方法,即使它们没有相互接触。我相信他们的坐标有问题,但我看不到多边形线,这让我也很难看到线的准确性。

这是我使用的代码:

 let triangle = SKSpriteNode(imageNamed: "Triangle_ZigZag")
let trianglePath = CGMutablePath()

trianglePath.addLines(between: [CGPoint(x: triangle.size.width,
y: triangle.size.height),

CGPoint(x: triangle.size.width,
y: - triangle.size.height),

CGPoint(x: -triangle.size.width,
y: triangle.size.height / 2)])

trianglePath.closeSubpath()
triangle.physicsBody = SKPhysicsBody(polygonFrom: trianglePath)

有人可以帮我弄清楚我做错了什么吗?

谢谢

最佳答案

仅供引用,物理线是绿色的,因此绿色 Sprite 可能不是最佳选择,因为您看不到这些线。

默认情况下,您的 Sprite 具有中心 anchor 或 (0, 0) 的 anchor 。因此,您的物理点需要考虑到这一点。右上角是中心宽度的一半和中心高度的一半等。你有中心的全宽和中心的全高,这就是问题所在。

trianglePath.addLines(between: [CGPoint(x: triangle.size.width / 2, y: triangle.size.height / 2), CGPoint(x: triangle.size.width / 2, y: -triangle.size.height / 2), CGPoint(x: -triangle.size.width / 2, y: 0)])

关于swift - 如何使用 CGPath 为该图像制作 SKPhysicsBody?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50125168/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com