【问题标题】:Text won't show up in LOVE2D game文字不会出现在 LOVE2D 游戏中
【发布时间】:2021-01-04 06:32:40
【问题描述】:

我目前正在使用 LOVE2D 制作我的Plants vs Zombies,只是完成了开始状态。但问题是选项文本不会显示,只有标题会显示:

我在StartState.lua:

StartState = Class{__includes = BaseState}

local option = 1

function StartState:update(dt)
    if love.keyboard.wasPressed('up') then
        if option == 1 then
            option = 2
        else
            option = 1
        end
    elseif love.keyboard.wasPressed('down') then
        if option == 2 then
            option = 1
        else
            option = 2
        end
    end

    if love.keyboard.wasPressed('enter') then
        if option == 1 then
            gStateMachine:change('play')
        else
            gStateMachine:change('quit')
        end
    end
end

function StartState:render()
    local backgroundWidth = gTextures['start-background']:getWidth()
    local backgroundHeight = gTextures['start-background']:getHeight()

    love.graphics.draw(gTextures['start-background'], 0, 0, 0, VIRTUAL_WIDTH / (backgroundWidth - 1), 
        VIRTUAL_HEIGHT / (backgroundHeight - 1))

    love.graphics.setFont(gFonts['medium'])
    love.graphics.setColor(0/255, 0/255, 0/255, 255/255)
    love.graphics.printf('Play', 0, VIRTUAL_HEIGHT + 5, VIRTUAL_WIDTH + 2, 'center')
    love.graphics.printf('Quit', 0, VIRTUAL_HEIGHT + 35, VIRTUAL_WIDTH + 2, 'center')

    if option == 1 then
        love.graphics.setColor(255/255, 174/255, 201/255, 255/255)
        love.graphics.printf('Play', 0, VIRTUAL_HEIGHT, VIRTUAL_WIDTH, 'center')
        love.graphics.setColor(237/255, 28/255, 36/255, 255/255)
        love.graphics.printf('Quit', 0, VIRTUAL_HEIGHT + 30, VIRTUAL_WIDTH, 'center')
    else
        love.graphics.setColor(237/255, 28/255, 36/255, 255/255)
        love.graphics.printf('Play', 0, VIRTUAL_HEIGHT, VIRTUAL_WIDTH, 'center')
        love.graphics.setColor(255/255, 174/255, 201/255, 255/255)
        love.graphics.printf('Quit', 0, VIRTUAL_HEIGHT + 30, VIRTUAL_WIDTH, 'center')
    end

    love.graphics.setFont(gFonts['large'])
    love.graphics.setColor(153/255, 217/255, 234/255, 128/255)
    love.graphics.printf('Attack Them All', 0, VIRTUAL_HEIGHT / 2 - 50, VIRTUAL_WIDTH, 'center')

    love.graphics.setColor(255/255, 255/255, 255/255, 255/255)
end

我什至试图去掉背景以确保文本是否在后面,但不,它不存在。我什至尝试改变不透明度,但仍然没有。我该如何解决?

【问题讨论】:

  • 您是否创建了 StartState 对象,然后调用 StartState:update(dt)StartState:render()?它不会自动发生。如果您将整个游戏上传到 github,我会看一下。

标签: text lua love2d


【解决方案1】:

您只能在love.draw() 回调中绘制对象,每次您希望它为当前帧绘制时都必须定期执行它

在您的main.lua 文件中:

function love.update()
    StartState:update(dt)
end

function love.draw()
    StartState:render()
end

【讨论】:

  • 其实我给所有状态都设置了StateMachine,没有问题。唯一的问题是文本不会显示。即使我更改字体大小、不透明度、颜色或将其放入main.lua,也没有任何反应。你试过了。
  • 有一些东西阻止了爱访问该函数,也许检查该函数的堆栈回溯并确保它是从爱绘制回调中访问的。如果这仍然不起作用,我不知道会怎样,你比我更了解你的代码
【解决方案2】:

回顾一下你的文本坐标。如果您看到误导性坐标,请尝试修复它!

【讨论】:

    猜你喜欢
    • 2021-01-12
    • 2013-11-30
    • 2013-03-31
    • 2022-01-05
    • 1970-01-01
    • 1970-01-01
    • 2017-10-15
    • 2020-09-05
    • 2015-05-20
    相关资源
    最近更新 更多