码迷,mamicode.com
首页 > 其他好文 > 详细

pygame学习记录(八) 字体显示

时间:2020-06-13 22:59:58      阅读:80      评论:0      收藏:0      [点我收藏+]

标签:none   com   窗口   english   屏幕   range   for   text3   mamicode   

字体显示

简要描述:

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

 

一、老方法创建窗口。

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学习记录(八) 字体显示

标签:none   com   窗口   english   屏幕   range   for   text3   mamicode   

原文地址:https://www.cnblogs.com/mirrorlied/p/13121974.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!