local TankQueue = class(“TankQueue”, function()
return display.newNode()
end)
–单列模式
function TankQueue:getSingleInstance()
if self.instance == nil then
self.instance = self:new()
end
return self.instance
end
function TankQueue:ctor()
self.enemyObjQueue = {} – 敌人坦克对象数组
self.enemyPaoDanQueue = {}
– 规定敌人类型:装甲车=0,坦克=1,其他向后添加
end
function TankQueue:addEnemyToArry(enemy)
– 保存敌人坦克对象到数
print(#self.enemyObjQueue)
self.enemyObjQueue#self.enemyObjQueue+1] = enemy
end
function TankQueue:addEnemyPanDanToArry(obj)
– 保存敌人坦克对象到数
self.enemyPaoDanQueue#self.enemyPaoDanQueue+1] = obj
print(“炮弹数量:”,#self.enemyPaoDanQueue)
end
function TankQueue:removeEnemyPanDanFromArry(obj)
– 保存敌人坦克对象到数
for i = 1,#self.enemyPaoDanQueue do
if self.enemyPaoDanQueue* == obj then
table.remove(self.enemyPaoDanQueue, i)
break
end
end
end
function TankQueue:addEnemyPaoDanToArry(enemy,paodan)
– 保存敌人坦克对象到数
local pos = self:getEnemyPositionFromArry(enemy)
end
function TankQueue:removeEnemyFromArry(enemy)
local pos = self:getEnemyPositionFromArry(enemy)
table.remove(self.enemyObjQueue, pos)
end
function TankQueue:clear()
for i = 1,#self.enemyObjQueue do
table.remove(self.enemyObjQueue, i)
end
end
function TankQueue:getEnemyPositionFromArry(enemy)
for i = 1,#self.enemyObjQueue do
if self.enemyObjQueue* == enemy then
return i
end
end
end
return TankQueue
调用:
self.tankqueue = TankQueue:getSingleInstance()
…
self.tankqueue:addEnemyToArry(tankenemy) – 将产生的坦克添加到队列中
报错:
LUA ERROR: attempt to call method ‘addEnemyToArry’ (a nil value)
这是为什么呢?**