Круг не становится невидимым при срабатывании - PullRequest
1 голос
/ 25 декабря 2011

Я изучаю Lua и использую Corona (http://www.anscamobile.com/corona/), чтобы сделать свою первую "Игру". Все идет хорошо, но мой код не работает должным образом.

-----------------------------------------------------------------------------------------
--
-- main.lua
--
-----------------------------------------------------------------------------------------

-- Your code here
display.setStatusBar(display.HiddenStatusBar)
local random = math.random
local cwidth = display.contentWidth local cheight = display.contentHeight
local starTable = { }

for i = 0,400 do
table.insert (starTable, display.newCircle(random(0,cwidth), random(0,cheight), random(0.8, 2.3)))
end

local function reset( event )
    for i = 0,#starTable do
        starTable[i].isVisible = false
    end
end

local function animate(event)
    for i = 0,#starTable do
        if random(0, 155) == 5 then
            starTable[i].isVisible = true
        end
    end
    timer.performWithDelay(150, reset)
end

Runtime:addEventListener("enterFrame", animate);

--This is the fade in at the start

local rect = display.newRect(0, 0, display.contentWidth, display.viewableContentHeight)
rect:setFillColor(0,0,0)

transition.to(rect, {time=2750, alpha=0})

--It should be on the bottom of this file, so it is always on top.

Проблема в том, что круги не мерцают, как должно быть. Я знаю, что все функции запускаются, если я помещаю рендер в функцию сброса (например, display.newText («test», 50, 50, nil, 53)), он будет отображаться, но не мигает.

Это дает мне эту ошибку:

?: iRuntime error ...\users\david\documents\corona projects\test\main.lua:19: attempt to index field '?' (a nil value) stack traceback: [C]: ? ...\users\david\documents\corona projects\test\main.lua:19: in function
'_listener' ?: in function <?:514> ?: iRuntime error ...\users\david\documents\corona projects\test\main.lua:19: attempt to index field '?' (a nil value)
stack traceback: [C]: ? ...\users\david\documents\corona projects\test\main.lua:19: in function '_listener' ?: in function <?:514> ?: i

РЕДАКТИРОВАТЬ: Исправлено

Исправлено - я забыл назначить ему поз.

Изменено

table.insert (starTable, display.newCircle(random(0,cwidth), random(0,cheight), random(0.8, 2.3)))

до

table.insert (starTable, i, display.newCircle(random(0,cwidth), random(0,cheight), random(0.8, 2.3)))

1 Ответ

0 голосов
/ 31 мая 2013

Вы должны указать позицию в starTable, куда вы хотите поместить свой круг, иначе он будет вставлен в конец таблицы:

table.insert (starTable, position, display.newCircle(random(0,cwidth), random(0,cheight), random(0.8, 2.3)))

Подробнее о таблицах Lua:
http://lua -users.org / вики / TablesTutorial
http://www.lua.org/pil/19.2.html

...