栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

SKPhysicsBody避免碰撞Swift / SpriteKit

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

SKPhysicsBody避免碰撞Swift / SpriteKit

位掩码为32位。像您一样声明它们对应于:

enum CollisionType:UInt32{    case Bird = 1 // 00000000000000000000000000000001    case Coin = 2 // 00000000000000000000000000000010    case Border = 3 // 00000000000000000000000000000011}

您要做的是将边界值设置为4。为了具有以下位掩码,请执行以下操作:

enum CollisionType:UInt32{    case Bird = 1 // 00000000000000000000000000000001    case Coin = 2 // 00000000000000000000000000000010    case Border = 4 // 00000000000000000000000000000100}

请记住,下一个bitmask必须遵循相同的步骤:8,16,…依此类推。

编辑:

另外,您可能想使用结构而不是枚举,并使用另一种语法来简化操作(这不是强制性的,只是出于优先考虑):

struct PhysicsCategory {    static let None       : UInt32 = 0    static let All        : UInt32 = UInt32.max    static let Bird       : UInt32 = 0b1       // 1    static let Coin       : UInt32 = 0b10      // 2    static let Border     : UInt32 = 0b100     // 4}

您可以这样使用:

bird.physicsBody!.categoryBitMask = PhysicsCategory.Birdbird.physicsBody!.collisionBitMask = PhysicsCategory.Bordercoin.physicsBody!.categoryBitMask = PhysicsCategory.Coincoin.physicsBody!.collisionBitMask = PhysicsCategory.Border


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/370776.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号