Я новичок в короне и пытался сделать какой-то объект пула на движущихся платформах. Когда они выходят из экрана, они переместились с visibleBlocks
на blocks
. Когда я регистрирую подсчеты обеих моих таблиц, числа не совпадают с тем, как они должны ... и в моих блоках появляются большие пробелы, появляющиеся на экране. поколениеCorona SDK Lua: Перемещение предметов из одного стола в другой
Мои блоки:
local color = 'red'
for i = 1, 10 do
local block = display.newRect(0, 0, 60, 2)
block.index = i
block.name = 'block'
block.isVisible = false
physics.addBody(block, 'static')
blocks[i] = block
sceneGroup:insert(block)
block.color = color
color = switchColor(block)
end
код обнаружения, когда блоки оставили экран
function update()
for k, block in pairs(visibleBlocks) do
block.y = block.y - 1
if block.y < 0 then
removeBlock(block)
end
end
код removeblock
function removeBlock(block)
block.isVisible = false
block.isBodyActive = false
blocks[block.index] = block
visibleBlocks[block.index] = nil
print (' ')
print('blocks: ' .. #blocks)
print('visible blocks: ' .. #visibleBlocks)
end
addblock, которая выполняется по таймеру
function addBlock()
local block = table.remove(blocks)
if block ~= nil then
block.isVisible = true
block.isBodyActive = true
visibleBlocks[block.index] = block
block.x = math.random(
block.contentWidth/2 + 20,
display.contentWidth - block.contentWidth/2 - 20
)
block.y = display.contentHeight
end
end
мой вывод консоли выглядит следующим образом:
Oct 23 08:50:16.281: blocks: 0
Oct 23 08:50:16.281: visible blocks: 9
Oct 23 08:50:17.289:
Oct 23 08:50:17.290: blocks: 0
Oct 23 08:50:17.290: visible blocks: 8
Oct 23 08:50:18.329:
Oct 23 08:50:18.329: blocks: 10
Oct 23 08:50:18.329: visible blocks: 7
Oct 23 08:50:19.353:
Oct 23 08:50:19.354: blocks: 9
Oct 23 08:50:19.354: visible blocks: 6
Oct 23 08:50:20.313:
Oct 23 08:50:20.314: blocks: 8
Oct 23 08:50:20.314: visible blocks: 5
Oct 23 08:50:21.339:
Oct 23 08:50:21.340: blocks: 0
Oct 23 08:50:21.340: visible blocks: 10
Oct 23 08:50:22.376:
Oct 23 08:50:22.376: blocks: 7
Oct 23 08:50:22.376: visible blocks: 10
Oct 23 08:50:23.390:
Oct 23 08:50:23.390: blocks: 6
Oct 23 08:50:23.390: visible blocks: 10
Oct 23 08:50:24.392:
Oct 23 08:50:24.393: blocks: 5
Oct 23 08:50:24.393: visible blocks: 10
Oct 23 08:50:25.457:
Oct 23 08:50:25.457: blocks: 4
Oct 23 08:50:25.458: visible blocks: 10
эти цифры всегда должны добавить до 10 верно? что-то здесь совсем не так
Я не полностью следую логике здесь, но вы почти наверняка создаете «дыры» в своих таблицах, перебирая индексы между ними. И '#' определяется только на таблицах без отверстий. –