pygame学习记录 字体显示

Posted mirrorlied

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了pygame学习记录 字体显示相关的知识,希望对你有一定的参考价值。

字体显示

简要描述:

- 新建一(几)种字体,并创建一些可在屏幕上显示的文本。

 

一、老方法创建窗口。

import pygame
from pygame.color import THECOLORS

pygame.init()
clock = pygame.time.Clock()
width = 800
height = 600
screen = pygame.display.set_mode((width, height), 0, 32)

二、新建字体

font1不建议使用,直接运行无影响,但在封装成exe文件时会报错。

font1和font2似乎不支持中文。

推荐使用font3,(需自行下载字体文件)。

# 自定义字体
# 参数意义:(字体,字体大小)
font1 = pygame.font.Font(None, 20)  # 不推荐
font2 = pygame.font.SysFont(arial, 30)
font3 = pygame.font.Font(pygame_pvz/SC.otf, 40)

三、创建文本

# 生成文本
# 参数意义:(文本内容,是否抗锯齿,字体颜色,字体背景颜色)
text1 = font1.render(English 中文 1234, True, THECOLORS[red])
text2 = font2.render(English 中文 1234, True, THECOLORS[green])
text3 = font3.render(English 中文 1234, True, THECOLORS[blue])

四、显示

# 此处存放字体,下面使用for循环统一显示
texts = [text1, text2, text3]
while True:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            exit()
    # 背景填充
    screen.fill(THECOLORS[white])

    for i in range(len(texts)):
        # 文本显示
        screen.blit(texts[i], [150 * (i + 1), 100 * (i + 1)])

    pygame.display.flip()

    clock.tick(30)
pygame.quit() 

五、修改文本

n = 0
while True:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            exit()
    screen.fill(THECOLORS[white])

    n += 1
    # 直接对这个变量进行覆写实现修改文本的功能
    num = font2.render(str(n), True, THECOLORS[black])
    screen.blit(num, [50, 50])

    pygame.display.flip()

    clock.tick(30)
pygame.quit()

六、全部代码

import pygame
from pygame.color import THECOLORS

pygame.init()
clock = pygame.time.Clock()
width = 800
height = 600
screen = pygame.display.set_mode((width, height), 0, 32)

# 自定义字体
# 参数意义:(字体,字体大小)
font1 = pygame.font.Font(None, 20)  # 不推荐
font2 = pygame.font.SysFont(arial, 30)
font3 = pygame.font.Font(pygame_pvz/SC.otf, 40)# 此处字体需自行安装

# 生成文本
# 参数意义:(文本内容,是否抗锯齿,字体颜色,字体背景颜色)
text1 = font1.render(English 中文 1234, True, THECOLORS[red])
text2 = font2.render(English 中文 1234, True, THECOLORS[green])
text3 = font3.render(English 中文 1234, True, THECOLORS[blue])

texts = [text1, text2, text3]

n = 0
while True:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            exit()
    screen.fill(THECOLORS[white])

    for i in range(len(texts)):
        screen.blit(texts[i], [150 * (i + 1), 100 * (i + 1)])

    n += 1
    num = font2.render(str(n), True, THECOLORS[black])
    screen.blit(num, [50, 50])

    pygame.display.flip()

    clock.tick(30)
pygame.quit()

七、效果展示

技术图片

 

以上是关于pygame学习记录 字体显示的主要内容,如果未能解决你的问题,请参考以下文章

pygame - 如何用字体和颜色显示文本?

pygame学习记录 画面更新

pygame学习记录 画面更新

pygame学习记录 创建一个窗口

pygame学习记录 创建一个窗口

iOS Coding项目片段记录