Как исправить ошибку в Corona SDK?

Когда добавил слушатель событий к зелёному кругу(boostButton) Corona начала выдавать ошибку.

5dbf225165f2f592260333.png
Вот код:
local score = 0
local boost = 1

display.setDefault( "background", 10/225, 10/225, 10/225)
display.setStatusBar(display.HiddenStatusBar)

local circle = display.newCircle(display.contentCenterX, display.contentCenterY, 50 )

local scoreText = display.newText(score, display.contentCenterX, 90, native.systemFont, 24)

local boostButton = display.newCircle(display.contentCenterX, 400, 30 ):setFillColor(40/225, 60/225, 30/225)--зелёный бустер


local function pushCircle()
  score = score + 1*boost
  scoreText.text = score
end
circle:addEventListener("tap", pushCircle);

local function scoreBoost()
  boost = boost + 1
end
boostButton:addEventListener('tap', scoreBoost)
  • Вопрос задан
  • 55 просмотров
Решения вопроса 1
Lerg
@Lerg
Defold, Corona, Lua, GameDev
Убери setFillColor, сделай отдельной строчкой. Получается ты присваиваешь переменной boostButton не объект-кнопку, а результат выполнения функции setFillColor, который nil, о чём тебе ошибка и говорит.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
dollar
@dollar Куратор тега Lua
Делай добро и бросай его в воду.
local boostButton = display.newCircle(display.contentCenterX, 400, 30 )
local test = boostButton:setFillColor(40/225, 60/225, 30/225)

В этом случае теперь boostButton содержит результат работы newCircle, т.е. ссылку на кнопку.
А вот переменная test содержит результат работы setFillColor, т.е. nil
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы