如下面這段代碼(網上找到的游戲原始碼中的一段):
enum RENDER_FLAGS
{
RENDER_NONE = 0x00,
RENDER_SKY = (1<<0),
RENDER_TERRAIN = (1<<1),
RENDER_SCENE_OUTDOOR = (1<<2),
RENDER_SCENE_INDOOR = (1<<3),
RENDER_FLORA = (1<<4),
RENDER_WATER = (1<<5),
RENDER_SHADOW = (1<<6),
RENDER_MODELTARGET = (1<<7),
RENDER_POSTEFFECT = (1<<8),
RENDER_SPRITE = (1<<9),
RENDER_DEBUG_INFO = (1<<10),
RENDER_WATER_TEXTURE = (1<<11), // 將場景渲染到水紋理
RENDER_CHARACTER = (1<<12),
RENDER_NAVIGATION = (1<<13),
RENDER_COLLISION = (1<<14),
RENDER_ALL = RENDER_SKY|RENDER_TERRAIN|RENDER_SCENE_OUTDOOR|RENDER_SCENE_INDOOR|RENDER_CHARACTER|RENDER_FLORA|RENDER_WATER|RENDER_SHADOW|RENDER_SPRITE|RENDER_DEBUG_INFO,
};
其中為什么是使用到位移運算子?有什么特別的含義嗎?按大多數見到的列舉定義中,都是應該是0.1.2.3...之類的
uj5u.com熱心網友回復:
為了計算“或”的關系 比如1<<0=00000001 1<<1=00000010 他倆或=00000011 在判斷的時候就可以通過00000011與上前兩個的任意一個如果>0表示 條件為真轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/53416.html
標籤:其它游戲引擎
