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学习记录 字体显示的主要内容,如果未能解决你的问题,请参考以下文章