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

Defold

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 ビットシフト抜け修正

お知らせ