你如何 运行 在 Love2d 上只绘制一次函数

How do you run a draw function only once on Love2d

我目前正在尝试创建一个 Love2d space 游戏,我正在尝试为运气不佳的星星创建 运行dom 生成,我创建星星的函数是:

function space.drawStars()

    for i = 1, space.starNum do
        love.graphics.setColor(255, 255, 255)
        space.starSize = love.math.random(1, 10)
        space.starXPosition = love.math.random(1, 1200)
        space.starYPosition = love.math.random(1, 750)
        love.graphics.rectangle("fill", space.starXPosition,space.starYPosition, space.starSize, space.starSize)
    end

end

我目前遇到的这个函数的问题是,当它是 运行 时,Lua 似乎 运行 这个函数多次,而且星星在不断变化。我曾尝试将此函数的内容放在我的主 class 中的 load() 函数中,但由于它需要放在我的绘图函数中,因此它不会生成星星。

谁能帮我实现这个功能 运行 一次,这样 Lua 只绘制一组星星,而不是不断地创造新的星星并摧毁原来的星星.

谢谢,

创建一次开始。像这样(未经测试):

local stars = nil

local function createStars()
    if stars==nil then
        stars={}
        for i = 1, space.starNum do
            stars[i] = {
                Size = love.math.random(1, 10),
                XPosition = love.math.random(1, 1200),
                YPosition = love.math.random(1, 750),
            }
        end
    end
end

function space.drawStars()
    createStars()
    for _, star in ipairs(stars) do
        love.graphics.setColor(255, 255, 255)
        love.graphics.rectangle("fill", star.XPosition, star.YPosition, star.Size, star.Size)
    end
end