Difference between revisions of "love.graphics.newFont"

(Change the Argument type to the same name)
(Added note about otf support)
Line 1: Line 1:
 
Creates a new [[Font]] from a TrueType font or [http://www.angelcode.com/products/bmfont/doc/file_format.html BMFont] file. Created fonts are not cached, in that calling this function with the same arguments will always create a new Font object.
 
Creates a new [[Font]] from a TrueType font or [http://www.angelcode.com/products/bmfont/doc/file_format.html BMFont] file. Created fonts are not cached, in that calling this function with the same arguments will always create a new Font object.
 +
OpenType fonts (.otf) work but some of its features may not be supported.
  
 
All variants which accept a filename can also accept a [[Data]] object instead.
 
All variants which accept a filename can also accept a [[Data]] object instead.

Revision as of 15:43, 20 October 2023

Creates a new Font from a TrueType font or BMFont file. Created fonts are not cached, in that calling this function with the same arguments will always create a new Font object. OpenType fonts (.otf) work but some of its features may not be supported.

All variants which accept a filename can also accept a Data object instead.

The default font in LÖVE is 'Bitstream Vera Sans' size 12 (before LÖVE 12.0) and 'Noto Sans' size 13 (after LÖVE 12.0).


O.png This function can be slow if it is called repeatedly, such as from love.update or love.draw. If you need to use a specific resource often, create it once and store it somewhere it can be reused!  



Function

Create a new BMFont or TrueType font.

Synopsis

font = love.graphics.newFont( filename )

Arguments

Variant filename
The filepath or filedata to the font file. Types can be below:
string filename
The filepath to the font file. This can be TrueType or, since 0.10.0, BMFont.
Data filename
The filedata of the font file. This can be create by love.filesystem.newFileData.

Returns

Font font
A Font object which can be used to draw text on screen.

Notes

If the file is a TrueType font, it will be size 12. Use the variant below to create a TrueType font with a custom size.

Function

Create a new TrueType font.

Synopsis

font = love.graphics.newFont( filename, size, hinting, dpiscale )

Arguments

string filename
The filepath to the TrueType font file.
number size
The size of the font in pixels.
Available since LÖVE 0.10.0
HintingMode hinting ("normal")
True Type hinting mode.


Available since LÖVE 11.0
number dpiscale (love.graphics.getDPIScale())
The DPI scale factor of the font.

Returns

Font font
A Font object which can be used to draw text on screen.

Function

Available since LÖVE 0.10.0
This variant is not supported in earlier versions.

Create a new BMFont.

Synopsis

font = love.graphics.newFont( filename, imagefilename )

Arguments

string filename
The filepath to the BMFont file.
string imagefilename
The filepath to the BMFont's image file. If this argument is omitted, the path specified inside the BMFont file will be used.

Returns

Font font
A Font object which can be used to draw text on screen.

Function

Create a new instance of the default font (Vera Sans) with a custom size.

Synopsis

font = love.graphics.newFont( size, hinting, dpiscale )

Arguments

number size (12)
The size of the font in pixels.
Available since LÖVE 0.10.0
HintingMode hinting ("normal")
True Type hinting mode.


Available since LÖVE 11.0
number dpiscale (love.graphics.getDPIScale())
The DPI scale factor of the font.

Returns

Font font
A Font object which can be used to draw text on screen.

Examples

Use newFont to draw a custom styled text

-- Create a ttf file font with a custom size of 20 pixels.
mainFont = love.graphics.newFont("anyfont.ttf", 20)

function love.draw() 
	-- Setting the font so that it is used when drawning the string.
	love.graphics.setFont(mainFont)

	-- Draws "Hello world!" at position x: 100, y: 200 with the custom font applied.
	love.graphics.print("Hello world!", 100, 200)
end


Use newFont to draw pixelated text

Pixelated font size 7
local font = love.graphics.newFont(7, "mono")
font:setFilter("nearest")
love.graphics.setFont(font)

function love.draw()
	love.graphics.scale(4)
	love.graphics.print ("Hello World 0123", 2, 2)
end

See Also



Other Languages