次のように、コードでさまざまなビットマスク カテゴリを宣言しています。
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
質問
これらの値を宣言するためにこのメソッド (ビットごとのシフト) が使用されるのはなぜですか? また、これらの値を宣言し、連絡先デリゲートで比較するのに最適な方法はどれですか?