gpt4 book ai didi

ios - physicsBody 类别位掩码值的设置

转载 作者:行者123 更新时间:2023-11-28 20:03:52 25 4
gpt4 key购买 nike

我在我的代码中声明了各种位掩码类别,如下所示:

static const uint32_t playerCategory = 1; 
static const uint32_t enemyCategory = 2;

使用这些类别,我的游戏运行得非常好。

但是,各种示例项目和教程都这样定义位掩码值:

static const uint32_t playerCategory = (0x01 << 1); // 0010
static const uint32_t enemyCategory = (0x01 << 2); // 0010

问题

为什么要用这种方法(按位移位)来声明这些值?另外,哪种方法最适合声明这些值,以及在联系人委托(delegate)中比较它们?

最佳答案

这些我都不会做。

我实际上会为它创建一个 NS_OPTIONS typedef。像...

typedef NS_OPTIONS(uint32_t, MyPhysicsCategory)
{
MyPhysicsCategoryAnt = 1 << 0,
MyPhysicsCategoryFood = 1 << 1,
MyPhysicsCategoryMouse = 1 << 2,
};

它们的作用实际上没有区别。它们都只是定义 1、2、4、8、16 等的整数和值...

区别在于可读性。

通过使用 NS_OPTIONS 方式,它告诉我(以及任何其他使用我的项目的人)您可以对它们使用按位运算。

ant.physicsBody.contactTestBitMask = MyPhysicsCategoryMouse | MyPhysicsCategoryFood;

我知道这意味着要对 Ant 进行接触测试以对抗食物和老鼠。

关于ios - physicsBody 类别位掩码值的设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22838200/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com