Pygame 中未显示文本
Text not displaying in Pygame
问题 - 我正在尝试为 simon says 游戏制作开始菜单并尝试首先显示一些文本,但除了游戏屏幕变白(应该发生)之外没有任何显示。我看过类似的问题,但他们似乎没有帮助。
程序应该只在屏幕上以黑字显示 'Simon says'
代码:
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() 但还是不行
实际上一切正常,但您犯了一个简单的错误。
注意第一行你调用的是
startMenu()
函数,主要是将文本 'Simon says' 绘制到屏幕上。
但是 同样,紧接着您将屏幕填满白色。
所以它绘制文本的表面并将其渲染到屏幕上,并且在它把屏幕变成白色之后(基本上它在你的文本表面上绘制白色)。
因此,如果您希望它出现,只需将该函数放在这一行之后:
screen.fill(WHITE)
问题 - 我正在尝试为 simon says 游戏制作开始菜单并尝试首先显示一些文本,但除了游戏屏幕变白(应该发生)之外没有任何显示。我看过类似的问题,但他们似乎没有帮助。
程序应该只在屏幕上以黑字显示 'Simon says'
代码:
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() 但还是不行
实际上一切正常,但您犯了一个简单的错误。 注意第一行你调用的是
startMenu()
函数,主要是将文本 'Simon says' 绘制到屏幕上。 但是 同样,紧接着您将屏幕填满白色。 所以它绘制文本的表面并将其渲染到屏幕上,并且在它把屏幕变成白色之后(基本上它在你的文本表面上绘制白色)。 因此,如果您希望它出现,只需将该函数放在这一行之后:
screen.fill(WHITE)