Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/219.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 尝试索引字段';家长';(零值)_Android_Iphone_Indexing_Lua - Fatal编程技术网

Android 尝试索引字段';家长';(零值)

Android 尝试索引字段';家长';(零值),android,iphone,indexing,lua,Android,Iphone,Indexing,Lua,我尝试重新加载场景时遇到了一些问题 在我的程序中,用户可以用手指划出一条线(这是一个iOS/Android应用程序),它工作得很好,但是,当我尝试重新加载场景时,控制台会返回 “尝试索引字段‘父’(一个零值)” 第39行 我用来执行“drawline”和重载(在本例中为replay)功能的代码是 local lines = {} local lineGroup = display.newGroup() local prevX,prevY local isDrawing = true local

我尝试重新加载场景时遇到了一些问题

在我的程序中,用户可以用手指划出一条线(这是一个iOS/Android应用程序),它工作得很好,但是,当我尝试重新加载场景时,控制台会返回

“尝试索引字段‘父’(一个零值)”

第39行

我用来执行“drawline”和重载(在本例中为replay)功能的代码是

local lines = {}
local lineGroup = display.newGroup()
local prevX,prevY
local isDrawing = true
local i = 1


local function distanceBetween(x1, y1, x2, y2)
local dist_x = x2 - x1
local dist_y = y2 - y1
local distanceBetween = math.sqrt((dist_x*dist_x) + (dist_y*dist_y))
return distanceBetween
end



local function drawLine(e)
if(e.phase == "began") then

    for i = #lines, 1, -1 do
  if (lines[i]) then
   lines[i].parent:remove(lines[i])
   lines[i] = nil
  end
end
lines = {}
line_number = 100


    prevX = e.x
    prevY = e.y
    isDrawing = true


elseif(e.phase == "moved") then
    local distance = distanceBetween(prevX, prevY, e.x, e.y)
    if(isDrawing and distance < 100) then
        if(lines[i]) then lineGroup:remove(i) end
        lines[i] = display.newLine(prevX, prevY, e.x, e.y)
        lines[i]:setColor(255, 255, 0)
        lines[i].width = 3
        lines[i].myName = "lines"


if(lines[i].y < 400) then
for i = #lines, 1, -1 do
  if (lines[i]) then
   lines[i].parent:remove(lines[i])
   lines[i] = nil
  end
end
end

        local dist_x = e.x - prevX
        local dist_y = e.y - prevY
        physics.addBody(lines[i], "static", 
        { density = 1, friction = 0.5, 
     bounce =  -0.8, shape = {0, 0, dist_x, dist_y,        0, 0} } )
        lineGroup:insert(lines[i])
    end


elseif(e.phase == "ended") then
    isDrawing = true
end

return lineGroup
end


Runtime:addEventListener("touch",drawLine)

如果需要,您只需进行额外检查:

  if (lines[i]) then
      if (lines[i].parent) then
         lines[i].parent:remove(lines[i])
      end
      lines[i] = nil
  end

我看不出您在哪里分配了
parent
任何值。为什么不是
nil
?您可以在第39行之前检查
行[i]
的值。非常感谢,我按照您的要求做了,但是现在我在第78行得到了“尝试调用方法'insert'(一个nil值)”,其中第78行是lineGroup:insert(行[i]),我能做什么?再次感谢。你如何重新加载游戏?针对您的问题,再次检查是否存在:if(lineGroup)然后lineGroup:insert(lines[i])endNevermind,忽略我之前的注释,因为lineGroup存在,否则不会出现该错误。相反,您可能正在重新启动游戏,但在使用之前没有再次初始化lineGroup=display.newGroup()。再次感谢,抱歉,我是lua的新手,如何重新启动游戏而不初始化lineGroup?那么,您如何重新启动游戏?请在原始问题中张贴您的代码。
  if (lines[i]) then
      if (lines[i].parent) then
         lines[i].parent:remove(lines[i])
      end
      lines[i] = nil
  end