我目前正在尝试创建一个Love2d太空游戏,我试图为幸运的星星创造随机代,我创造星星的功能是:
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似乎多次运行该功能并且星星不断变化。我已经尝试将此函数的内容放在我的主类的load()函数中,但是因为这需要在我的绘制函数中,所以它不会生成星星。
请有人帮助我如何让这个功能只运行一次,所以Lua只画了一组星星并且不会不断地创造新的星星并摧毁原来的星星。
谢谢,
答案 0 :(得分:2)
创建一次启动。像这样(未经测试):
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