gpt4 book ai didi

swift 3 (SpriteKit) : Aligning SKPhysicsBody to SKShapeNode

转载 作者:搜寻专家 更新时间:2023-10-31 22:20:01 25 4
gpt4 key购买 nike

我在我的程序中使用这个创建 SKShapeNodes:

let points = [CGPoint(x: x, y: y), CGPoint(x: x2, y: y2)]
let line = SKShapeNode(points: &points, count: points.count)

我遇到的问题是,每当我向线上添加一个 physicsBody 时,physicsBody 都没有与该线对齐。我意识到这个问题是因为线的位置总是 CGPoint(x: 0, y: 0) 所以 physicsBody 总是在屏幕的中心,不管线在哪里。这是我创建 physicsBody 的代码:

line.physicsBody = SKPhysicsBody(rectangleOf: (line.frame.size))

如果有人知道如何将 physicsBody 与直线对齐,请回复您的解决方案。谢谢!

最佳答案

如果你想制作一个从一点到另一点的物理体,你可以使用这样的东西:

class GameScene:SKScene {

override func didMove(to view: SKView) {
var points = [CGPoint(x: 22, y: 22), CGPoint(x: 155, y: 155)]
let line = SKShapeNode(points: &points, count: points.count)
print(line.frame.size)

line.physicsBody = SKPhysicsBody(edgeFrom: points[0], to: points[1])

addChild(line)
}
}

这将使用两个点创建一个基于边的物理体。默认情况下,边缘物理体是静态的,因此请记住这一点。要注册一个接触(或与这个物体发生碰撞),另一个物体必须是动态的。

如果你想让这个 body 动起来,那就找volume based initializers .

关于 swift 3 (SpriteKit) : Aligning SKPhysicsBody to SKShapeNode,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41203767/

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