簡體   English   中英

SpriteKit SWIFT中的位掩碼出現問題

[英]Trouble with bit masks in SpriteKit SWIFT

在我的游戲中,我有不同顏色的圓圈。 它們僅應與顏色不同的邊界碰撞。 為此,我首先為法線圓分配類別位掩碼。

    struct CollisionCategoryBitmask {
    static let monster: UInt32 = 00000001
    static let picker: UInt32 = 00000010
    static let bound: UInt32 = 00000100
    static let circle: UInt32 = 00001000
    static let yellow: UInt32 = 00010000
    static let brown: UInt32 = 00100000
    static let cyan: UInt32 = 01000000
    static let magenta: UInt32 = 10000000
}

physicsBody?.categoryBitMask  = CollisionCategoryBitmask.circle

邊界具有以下掩碼:

boundary.physicsBody?.categoryBitMask = CollisionCategoryBitmask.bound
boundary.physicsBody?.collisionBitMask = 11101111

圓與拾取器碰撞后,會得到一個位掩碼,該掩碼應使其停止與邊界碰撞,但不會與邊界碰撞。

self.circles[i].fillColor = .yellow
                    self.circles[i].physicsBody?.categoryBitMask = 00010000
                    self.circles[i].physicsBody?.collisionBitMask = 11111011

當圓與拾取器碰撞時,將執行此代碼。 結構中的值(例如青色和洋紅色)分別表示不與該顏色的邊界碰撞的圓形狀態。 我的錯誤在哪里?

只需在每個文字的開頭添加“ 0b”。 您現在不使用二進制表示法。

閱讀有關位掩碼如何工作的更多信息。

暫無
暫無

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

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