You can either use
pygame.font
or
pygame.freetype. In the
following I use
pygame.font.
Waht you have to do is to generate a
fontobject and render the text to a
pygame.Surface
(
name_surf). This surface has to be
blitto the window continuously in the
loop. When the name changes, the the surface has to be recreated:
import pygameimport pygame.fontpygame.init()win = pygame.display.set_mode((500, 200))clock = pygame.time.Clock()fps = 60def input_player_name(): # create font and text surface font = pygame.font.SysFont(None, 100) name_surf = font.render('', True, (255, 0, 0)) player_name_screen = True name = "" while player_name_screen: for event in pygame.event.get(): if event.type == pygame.KEYDOWN: if event.key == pygame.K_RETURN: player_name_screen = False else: name += event.unipre # recreate text surface name_surf = font.render(name, True, (255, 0, 0)) win.blit(player_name_bg, (0, 0)) # blit text to window win.blit(name_surf, (50, 50)) pygame.display.update() clock.tick(fps)input_player_name()
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)