美文网首页
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