【发布时间】:2020-11-22 16:39:25
【问题描述】:
我需要创建一个矩形对象并相对于矩形对象绘制一个文本,然后在屏幕上将这些项目一起blit。 我正在使用 pygame 库来创建游戏。我是这个 pygame 编程的新手。如果可能的话,有人可以建议我的方法吗?
【问题讨论】:
我需要创建一个矩形对象并相对于矩形对象绘制一个文本,然后在屏幕上将这些项目一起blit。 我正在使用 pygame 库来创建游戏。我是这个 pygame 编程的新手。如果可能的话,有人可以建议我的方法吗?
【问题讨论】:
文本表面是与任何其他表面一样的表面对象。渲染文本:
font = pygame.font.SysFont(None, 80)
text_surf = font.render('test text', True, (255, 0, 0))
创建一个表面并在其上blit 文本表面:
rect_surf = pygame.Surface((400, 100))
rect_surf.fill((0, 128, 255))
rect_surf.blit(text_surf, text_surf.get_rect(center = rect_surf.get_rect().center))
小例子:
import pygame
pygame.init()
window = pygame.display.set_mode((500, 300))
clock = pygame.time.Clock()
font = pygame.font.SysFont(None, 80)
text_surf = font.render('test text', True, (255, 0, 0))
rect_surf = pygame.Surface((400, 100))
rect_surf.fill((0, 128, 255))
rect_surf.blit(text_surf, text_surf.get_rect(center = rect_surf.get_rect().center))
run = True
while run:
clock.tick(60)
for event in pygame.event.get():
if event.type == pygame.QUIT:
run = False
window.fill(0)
window.blit(rect_surf, rect_surf.get_rect(center = window.get_rect().center))
pygame.display.flip()
pygame.quit()
exit()
参见:
【讨论】: