首页 > 解决方案 > 在love2d中产生更多对象?

问题描述

所以,我是 love2d 编码的初学者,但我认为我已经掌握了大部分基础知识。

但是,我不知道如何创建一个函数//表以一次生成多个对象。

function love.load()
    local music = love.audio.newSource('flamingo.mp3')
    music:setLooping(true)
    love.audio.play(music)
    player = {}
    player.x = 5
    player.y = 225
    player.speed = 2
    player.image = love.graphics.newImage('player.png')

    flower = {}
    flower.image = love.graphics.newImage('flower.png')
    flower.x = love.math.random(0, 400)
    flower.y = love.math.random(0, 250)
end

function love.update(dt)
    if love.keyboard.isDown('right') then
        player.x = player.x + player.speed
    elseif love.keyboard.isDown('left') then
        player.x = player.x - player.speed
    elseif love.keyboard.isDown('up') then
        player.y = player.y - player.speed
    elseif love.keyboard.isDown('down') then
        player.y = player.y + player.speed
    end
end

function love.draw()
    love.graphics.draw(flower.image, flower.x, flower.y)
    love.graphics.draw(player.image, player.x, player.y)
end

我有一张在一朵花中产卵的桌子,但我想在(随机x,y位置的随机花数)中产卵更多,就像我说的那样,我不知道怎么做,所以我希望得到一些帮助.

标签: lualove2d

解决方案


当然是通过添加更多表格!

function love.load()
    --....
    flower = {}
    flower.image = love.graphics.newImage('flower.png')
    flower.x = love.math.random(0, 400)
    flower.y = love.math.random(0, 250)

    flower1 = {}
    flower1.image = love.graphics.newImage('flower.png')
    flower1.x = love.math.random(0, 400)
    flower1.y = love.math.random(0, 250)

    flower2={}
    --etc...
end

function love.draw()
    love.graphics.draw(flower.image, flower.x, flower.y)
    love.graphics.draw(flower1.image, flower1.x, flower1.y)
    --etc...
    love.graphics.draw(player.image, player.x, player.y)
end

不过,说真的,您可能会发现上述方法存在一些问题。关于如何更好地组织代码的描述、解释和教育将适合一本好的教科书,而不是一个 SO 答案。

那里已经有很多书籍和指南。确保您至少了解Lua 编程,并在此处查看示例以了解如何构建类似的程序。请记住,理想情况下,除了这些链接之外(和中间)还有很多东西需要学习。


推荐阅读