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