【问题标题】:How to exclude multiple physicsbody collisionBitMask如何排除多个物理体碰撞BitMask
【发布时间】:2017-02-05 13:55:46
【问题描述】:

我从其他 SO' 的答案中发现,您可以通过在位掩码中使用 ~ 来排除相同类型的 spritenode 物理体的碰撞,如下所示:

    self.physicsBody = [SKPhysicsBody bodyWithCircleOfRadius:self.size.width/2.0];
    self.minionLife = 1.0;
    self.minionSpeed = 60.0;
    self.minionPath = 0;
    self.physicsBody.categoryBitMask = cat_enemy1;

    // does not collide with itself
    self.physicsBody.collisionBitMask = ~cat_enemy1; // here

问题是如何向这个碰撞位掩码添加更多排除项?

我试过了:

self.physicsBody.collisionBitMask = ~cat_enemy1 | ~cat_playerShip; // here

但不工作。

【问题讨论】:

    标签: objective-c collision-detection physics skspritenode


    【解决方案1】:

    你必须或它然后否定它......:

    … = ~(cat_enemy1 | cat_playerShip);
    

    … 或者 to and it:

    … = ~cat_enemy1 & ~cat_playerShip;
    

    【讨论】:

    • 不客气。是一样的,因为/(a+b)=/a*/b.
    猜你喜欢
    • 2013-12-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多