簡體   English   中英

麻煩:使用Swift和SpriteKit的SKPhysicsBody(polygonFromPath:CGPath)

[英]Trouble with: SKPhysicsBody(polygonFromPath: CGPath) using Swift and SpriteKit

我正在嘗試為SKSpriteNode創建一個物理主體。 我通常使用圖像創建物理物體並說:

snode = SKSpriteNode(imageNamed: snodeImage)
snode = SKPhysicsBody(texture: snode.texture!, size: snode.size)

我希望能夠使用以下方法創建物理物體:

snode.physicsBody = SKPhysicsBody(polygonFromPath: CGPath)

我不知道如何執行此操作,我嘗試過在線查找,但無法弄清楚。 有人可以給我舉個例子嗎? 也許告訴我如何使用此構造函數創建一個簡單的矩形物理物體?

最簡單的方法是使用UIBezierPath因為它具有許多有用的構造函數,然后將其轉換為CGPath polygonFromPath

您要求提供一些代碼來創建一個簡單的矩形物理物體:

let square = SKSpriteNode(color: UIColor.redColor(), size: CGSize(width: 128, height: 128))
square.position = CGPoint(x: CGRectGetMidX(frame), y: CGRectGetMidY(frame))

let path = UIBezierPath(rect: CGRect(x: -64, y: -64, width: 128, height: 128))
square.physicsBody = SKPhysicsBody(polygonFromPath: path.CGPath)

addChild(square)

請注意,物理實體是偏移的,因為它是從其節點的中心開始測量的。 您可能想在skView.showsPhysics = true文件中使用skView.showsPhysics = true來幫助您調試物理形狀。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM