[英]Removing all Physics from a Node in Spritekit Swift
我試圖從一個節點中刪除所有物理,以便它根本沒有物理比例。 我希望它表現出如果不添加物理體而添加節點的行為。 我嘗試使用.dynamic
屬性,但發現這樣做可以使沒有力施加到該節點上,但是其他節點仍然可以與其碰撞。
基本上我想做的是從節點上移除物理物體。
我正在迅速使用spritekit,在此先感謝您。
假設您有一個名為“ character”的節點,其設置如下。
self.character.physicsBody = SKPhysicsBody(texture: firstFrame, size: characterSize)
self.character.physicsBody?.affectedByGravity = true
self.character.physicsBody?.affectedByGravity = true
self.character.physicsBody?.allowsRotation = false
您可以將節點的physicsBody更改為此:
self.character.physicsBody = nil
所有上述物理將被刪除。 您也可以像在問題中所說的那樣僅更改physicsBody
一個或兩個屬性。 例如,如果這是您想要的情況,則可以更改碰撞類別以防止對象碰撞。
self.character.physicsBody?.categoryBitMask = colliderType.None.rawValue
如果嘗試這樣做,請確保設置了“無”類別。 可以這樣做。
enum colliderType:UInt32 {
case Character = 1
case Block = 2
case Wave = 3
case None = 4
}
我所做的是:我將字符的categoryBitMask更改為0:
self.physicsBody.categoryBitMask = 0;
這樣就成功了,這樣做之后,我的角色將不會注冊任何聯系人。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.