Я работаю над игрой. Игра включает (одну часть), получая позиции x и y события касания, . и отслеживать его, когда он движется и добавления X/Y значения в таблице у меня есть, что вниз погладить Однако, когда я пытаюсь создать линию из таблицы дает мне эту ошибку:.Что означает: «плохой аргумент от -1 до« newLine »(ожидаемый прокси, полученный нуль)
/Users/jordanmcbride/Desktop/Programing/Lua Projects/When Balls Drop/main.lua:21: bad argument #-1 to 'newLine' (Proxy expected, got nil)
stack traceback:
[C]: in function 'newLine'
/Users/jordanmcbride/Desktop/Programing/Lua Projects/When Balls Drop/main.lua:21: in function </Users/jordanmcbride/Desktop/Programing/Lua Projects/When Balls Drop/main.lua:8>
?: in function <?:221>
у меня нет идея, что это делает ...
код в вопросе, с линией комментировал.
function drawLineTouchListener(event)
if event.phase == "began" then
currx = event.x
curry = event.y
table.insert(linePositions, currx)
table.insert(linePositions, curry)
elseif event.phase == "moved" then
currx = event.x
curry = event.y
table.insert(linePositions, currx)
table.insert(linePositions, curry)
elseif event.phase == "ended" then
-- This is where the code does't work.
line = display.newLine(linePositions)
test = {
0, 0,
20, 20,
40, 40,
60, 60,
80, 80}
line2 = display.newLine(test)
line2:setStrokeColor(black)
end
print("x: "..currx.." y:"..curry)
end
Вот весь мой код:
-- Hides the status bar at the top of the screen
display.setStatusBar(display.HiddenStatusBar)
print("App Starting!")
linePositions = {}
function drawLineTouchListener(event)
if event.phase == "began" then
currx = event.x
curry = event.y
table.insert(linePositions, currx)
table.insert(linePositions, curry)
elseif event.phase == "moved" then
currx = event.x
curry = event.y
table.insert(linePositions, currx)
table.insert(linePositions, curry)
elseif event.phase == "ended" then
line = display.newLine(linePositions)
test = {
0, 0,
20, 20,
40, 40,
60, 60,
80, 80}
line2 = display.newLine(test)
line2:setStrokeColor(black)
end
print("x: "..currx.." y:"..curry)
end
function playButtonTouch (event)
if (event.phase == "ended") then
end
end
function highScoreButtonTouch (event)
if (event.phase == "ended") then
end
end
function quitButtonTouch (event)
if (event.phase == "ended") then
os.exit(0)
end
end
function displayMenu()
mainMenuGroup = display.newGroup()
title = display.newImage(mainMenuGroup, "Title.png", display.contentCenterX, 20)
title:scale(.3, .3)
playButton = display.newImage(mainMenuGroup, "Play Button.png", display.contentCenterX, display.contentHeight - 300)
playButton:scale(.3, .3)
quitButton = display.newImage(mainMenuGroup, "Quit Button.png", display.contentCenterX, display.contentHeight - 200)
quitButton:scale(.3, .3)
highScoreButton = display.newImage(mainMenuGroup, "Highscore Button.png", display.contentCenterX, display.contentHeight - 100)
highScoreButton:scale(.3, .3)
playButton:addEventListener("touch", playButtonTouch)
quitButton:addEventListener("touch", quitButtonTouch)
highScoreButton:addEventListener("touch", highScoreButtonTouch)
end
--Creates a solid white background that doubles for a touch listner
background = display.newRect(display.contentCenterX, display.contentCenterY, display.contentWidth, display.contentHeight+100)
background:setFillColor(1, 1, 1)
background:addEventListener("touch", drawLineTouchListener)
displayMenu()
Вы просмотрели документацию для ['display.newLine'] (http://docs.coronalabs.com/api/library/display/newLine.html)? – greatwolf
@ greatwolf Да, все, что я получил от него, это то, как создать линию с предопределенными точками. Пример: local myLine = display.newLine (0,0, 100,100). И что вы не можете нажать на них ... –
попробуйте 'unpack (linePositions)' и передайте это 'display.newLine'. – greatwolf