美文网首页
Fonts(字体)

Fonts(字体)

作者: 庵下桃花仙 | 来源:发表于2018-08-02 23:43 被阅读24次

倘若想在屏幕上显示字体,用pygame.draw.line()的话过于麻烦,因此,Pygame为字体和创建文本提供了一些更简单的功能。

代码

# -*- coding:utf-8 -*-

import pygame, sys
from pygame.locals import *

pygame.init()
DISPLAYSURF = pygame.display.set_mode((400, 300))
pygame.display.set_caption('Hello World!')

WHITE = (255, 255, 255)
GREEN = (0, 255, 0)
BLUE = (0, 0, 128)

fontObj = pygame.font.Font('freesansbold.ttf', 32)
textSurfaceObj = fontObj.render('Hello World!', True, GREEN, BLUE)
textRectObj = textSurfaceObj.get_rect()
textRectObj.center = (200, 150)

while True: # main game loop
    DISPLAYSURF.fill(WHITE)
    DISPLAYSURF.blit(textSurfaceObj, textRectObj)
    for event in pygame.event.get():
        if event.type == QUIT:
            pygame.quit()
            sys.exit()
    pygame.display.update()

结果

font.PNG
屏幕上显示文字有六个步骤:

1、创建一个pygame.font.Font对象。
2、通过调用Font对象的render()方法创建一个Surface对象,并在其上绘制文本。
3、通过调用Surface对象的get_rect()方法,从Surface对象创建一个Rect对象。此Rect对象将为有合理的宽度和高度,但顶部和左侧属性将为0。
4、通过更改其中一个属性来设置Rect对象的位置。我们将Rect对象的中心设置为200,150。
5、 将带有文本的Surface对象Blit到pygame.display.set_mode()返回的Surface对象上。
6、调用 pygame.display.update()使其出现在屏幕上。

pygame.font.Font()构造函数的参数是要使用的字体文件,以及字体大小的整数(以点为单位,如字处理器如何测量字体大小)。我们传递'freesansbold.ttf'(这是Pygame附带的字体)和整数32(对于32 磅大小的字体)。

有关 使用其他字体的详细信息,请参阅http://invpy.com/usingotherfonts

render() 方法调用的参数是要呈现的文本的字符串,一个布尔值,用于指定是否需要消除锯齿,文本的颜色以及背景的颜色。

Anti-Aliasing(抗锯齿)

抗锯齿是一种图形技术,通过在边缘添加一点点模糊,使文本和形状看起来不那么块状。使用抗锯齿绘制需要更多的计算时间,因此尽管图形可能看起来更好,但程序可能运行得更慢(但只是一点点)。

如果放大锯齿线和消除锯齿线,它们看起来像这样:


要使Pygame的文本使用消除锯齿,只需为render() 方法的第二个参数传递True。

相关文章

网友评论

      本文标题:Fonts(字体)

      本文链接:https://www.haomeiwen.com/subject/ohxevftx.html