参数值为零

时间:2016-03-02 22:55:50

标签: lua corona

我正在创造一种液体将会出现的游戏。我正在使用Corona物理引擎的粒子系统。对于粒子组的参数,我从一个方法得到它。当我运行该程序时,我收到一条错误消息,指出该参数是一个零值。

代码:

-- Will randomly drop water stream at random locations and with random colors 

--Delcare class variables 
local physics = (require"physics")
physics.start() 
local w = display.contentWidth
local h = display.contentHeight 
local particleSystem = physics.newParticleSystem({  
    filename = "particle.png",
    colorMixingStrength = 0.1,
    radius = 3,
    imageRadius = 6
})


--function to start the water stream
local function start()

end 

--fucntion to end the water stream 

local function stop() 

end 

--a function to create particle paramerters 
-- flag to determine if the particle parameter should have random colors
-- WILL have RANDOM location 
local function createParticleParameter(flag, x, y, color)
    local param = {
        flags = flags, 
        x = x, 
        y = y, 
        color = color, 
        radius = 10, 
        linearVelocityX = 0,
        linearVelocityY = 10, 
        lifetime = 10 
    }
    return param
end 

local function onTimer()
        local parmas = createParticleParameter("water",  math.random(0, display.contentWidth), 0, {0, 1, 0})
        particleSystem:createGroup(params)
end 

timer.performWithDelay( 1000, onTimer, 0 )

错误消息:

---------------------------
Corona Runtime Error
---------------------------
attempt to index a nil value
stack traceback:
    [C]: in function 'createGroup'
    main.lua:47: in function '_listener'
    ?: in function <?:167>
    ?: in function <?:221>

我检查了参数是否正确,这是因为当我运行这个程序时它出于某种原因起作用了:

-- Will randomly drop water stream at random locations and with random colors 
--Delcare class variables 
local physics = (require"physics")
physics.start() 
local w = display.contentWidth
local h = display.contentHeight 
local particleSystem = physics.newParticleSystem({  
    filename = "particle.png",
    colorMixingStrength = 0.1,
    radius = 3,
    imageRadius = 6
})


--function to start the water stream
local function start()

end 

--fucntion to end the water stream 

local function stop() 

end 

--a function to create particle paramerters 
-- flag to determine if the particle parameter should have random colors
-- WILL have RANDOM location 
local function createParticleParameter(flag, x, y, color)
    local param = {
        flags = flags, 
        x = x, 
        y = y, 
        color = color, 
        radius = 10, 
        linearVelocityX = 0,
        linearVelocityY = 10, 
        lifetime = 10 
    }
    return param
end 

local function onTimer()
        local parmas = createParticleParameter("water",  math.random(0, display.contentWidth), 0, { 0,1,0})
        particleSystem:createGroup({
        flags = "water", 
        x = math.random(0, display.contentWidth), 
        y = 0, 
        color = {0, 1,0 }, 
        radius = 10, 
        linearVelocityX = 0,
        linearVelocityY = 10, 
        lifetime = 10 
    })
end 

timer.performWithDelay( 1000, onTimer, 0 )

唯一的主要区别是我手动放置参数。 为什么会这样?

1 个答案:

答案 0 :(得分:2)

你拼写错误

        local parmas = createParticleParameter("water",  math.random(0, display.contentWidth), 0, {0, 1, 0})