簡體   English   中英

在Spritekit Swift中從節點移除所有物理

[英]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.

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