【Defold】ビット操作用モジュール「BitFlag」

2020/07/12Defold, DEVELOP

bit 操作を少しでも簡単に行うための lua モジュールを作成しました。

local M = {}
function M.new()
	local instance = {}
	instance.flag = 0
	function instance.add_flag(_flag)
		instance.flag = bit.bor(instance.flag, bit.lshift(1, _flag))
	end
	function instance.del_flag(_flag)
		instance.flag = bit.band(instance.flag, bit.bnot(bit.lshift(1, _flag)))
	end
	function instance.has_flag(_flag)
		return (bit.band(instance.flag, bit.lshift(1, _flag)) ~= 0)
	end
	function instance.one_time_flag(_flag)
		local temp = instance.has_flag(_flag);
		instance.del_flag(_flag);
		return temp;
	end
	function instance.reset_flag()
		instance.flag = 0
	end
	return instance
end
return M

簡単なものですが、毎回作るは面倒なので公開しました。

※2020/06/20 ビットシフト抜け修正

お知らせ

Posted by kazupon