文字未在Pygame中显示

时间:2018-11-20 19:28:39

标签: python text pygame game-development

问题-我正在尝试为simon游戏创建开始菜单,并尝试首先显示一些文本,但是除了游戏屏幕变白(应该发生)以外,什么也没有显示。我看过类似的问题,但它们似乎无济于事。

程序应只在屏幕上以黑色文字显示“西蒙说”。

代码:

import pygame,random,pickle,time

WHITE = (255,255,255)
BLACK = (0,0,0)
RED = (255,0,0)
GREEN = (0,255,0)
BLUE = (0,0,255)
YELLOW = (255,255,0)
PURPLE = (128,0,128)
CYAN = (0,255,255)
ORANGE = (255,165,0)
PINK = (255,192,203)

pygame.init()
logo = pygame.image.load("logo.png")
pygame.display.set_icon(logo)
pygame.display.set_caption("Simon Says")

screen = pygame.display.set_mode((1280,720))

def textObjects(text,font):
   textSurface = font.render(text,True,BLACK)
   return textSurface, textSurface.get_rect()

def displayText(text):
    fontInfo = pygame.font.Font(None,100)
    textSurf, textSize = textObjects(text,fontInfo)
    textSize.center = ((1280/2),(720/2))
    screen.blit(textSurf,textSize)
    pygame.display.update()

def startMenu():
    displayText('Simon Says')
def main():
    startMenu() 
    running = True
    while running:
        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                running = False
        screen.fill(WHITE)
        pygame.display.update()
        pygame.display.flip()

main()

还尝试使用pygame.display.flip(),但无论如何都无法正常工作

1 个答案:

答案 0 :(得分:1)

实际上,一切都很好,但是您有一个简单的错误。 请注意,在第一行中您正在呼叫

startMenu()

功能,它基本上在屏幕上绘制“西蒙说”文本。 也要紧接着,您将屏幕填满白色。 因此,它将绘制文本的表面并将其渲染到屏幕上,然后在将屏幕变成白色后(基本上在文本表面上绘制白色)。 因此,如果您希望它出现,只需将该功能放在此行之后:

screen.fill(WHITE)