文字不会出现在 LOVE2D 游戏中
Text won't show up in LOVE2D game
我目前正在使用 LOVE2D 制作我的植物大战僵尸,只完成了开始状态。但问题是选项文本不会显示,只有标题会显示:
我在 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
我什至试图摆脱背景以确保文本是否在后面,但不,它不在那里。我什至尝试改变不透明度,但仍然没有。我该如何解决?
您只能在 love.draw() 回调中绘制对象,每次您要为当前帧绘制时都必须定期执行它
在您的 main.lua
文件中:
function love.update()
StartState:update(dt)
end
function love.draw()
StartState:render()
end
回头看看你的文字坐标。如果您看到误导性坐标,请尝试修复它!
我目前正在使用 LOVE2D 制作我的植物大战僵尸,只完成了开始状态。但问题是选项文本不会显示,只有标题会显示:
我在 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
我什至试图摆脱背景以确保文本是否在后面,但不,它不在那里。我什至尝试改变不透明度,但仍然没有。我该如何解决?
您只能在 love.draw() 回调中绘制对象,每次您要为当前帧绘制时都必须定期执行它
在您的 main.lua
文件中:
function love.update()
StartState:update(dt)
end
function love.draw()
StartState:render()
end
回头看看你的文字坐标。如果您看到误导性坐标,请尝试修复它!