我使用了 setDefaultFilter 但文本仍然过于像素化

    Class = require 'class'
push = require 'push'

WINDOW_WIDTH = 1280
WINDOW_HEIGHT = 720

VIRTUAL_WIDTH = 432
VIRTUAL_HEIGHT = 243

function love.load()

    love.window.setTitle('Maze')

    love.graphics.setDefaultFilter('nearest', 'nearest')

    smallFont = love.graphics.newFont('HARRYP__.TTF', 25)

    push:setupScreen(VIRTUAL_WIDTH, VIRTUAL_HEIGHT, WINDOW_WIDTH, WINDOW_HEIGHT, {
        fullscreen = false,
        vsync = true,
        resizable = false,
    })
end

function love.draw()
    push:apply('start')

    love.graphics.clear(30 / 255, 30 / 255, 50 / 255, 1)

    love.graphics.setFont(smallFont)
    love.graphics.printf('Hello, world!', 0, VIRTUAL_HEIGHT / 2 - 6, VIRTUAL_WIDTH, 'center')

    push:apply('end')
end

我已经尝试改变字体大小,但它仍然呈现出像素化的效果。但是我看到其他人使用类似的代码而文本呈现出了清晰的效果。

点赞
用户3342050
用户3342050

这取决于你的字体有多详细。如果渲染后不被膨胀,那么使用的字体将会更好看。此时,关闭虚拟播放区并直接在屏幕上绘制图形,将会获得更好的结果。这在标题中更容易实现,因为你只需要在一般区域内定位,而不是具体位置。

function love.draw()
    push:apply('start')  --  启用虚拟大小
    love.graphics.clear(30 /255, 30 /255, 50 /255, 1)

    -- 在这里绘制您的游戏图形

    push:apply('end')  --  停用虚拟大小

    love.graphics.setFont(smallFont)
    love.graphics.printf('Hello, world!', 0, WINDOW_HEIGHT /2 -6, WINDOW_WIDTH, 'center')
end

你也可以尝试不同的字体大小,看看是否有影响。

smallFont = love.graphics.newFont('HARRYP__.TTF', 30)
2020-12-27 13:51:21