ObjectPool.lua
740 Bytes
cc.exports.ObjectPool = class("ObjectPool")
local map = {};
local function createObject(name)
local obj = cc.Sprite:createWithSpriteFrameName(name);
obj.name = name;
-- print("create object: "..name)
return obj;
end
function ObjectPool:getObject(name)
local obj;
if map[name] == nil then
map[name] = {};
end
if #map[name] < 1 then
obj = createObject(name);
else
obj = table.remove(map[name],#map[name]);
end
obj.x,obj.y = 0,0;
return obj;
end
function ObjectPool:pushObject(obj)
if obj.name ~= nil then
if map[obj.name] == nil then
map[obj.name] = {};
end
map[obj.name][#map[obj.name]+1] = obj;
end
end
return ObjectPool