2016-06-29 3 views
0

Все работает отлично, за исключением этого шрифта, я не знаю, почему это происходит, и оно даже не показывает никаких ошибок. И не отображать текст на экране.pygame.font не работает и не показывает никаких ошибок также

# import library here 
import pygame 
import time 
import sys 

# display init 
display_width = 800 
display_height = 600 

# game initialization done 
pygame.init() 

# game display changed 
gameDisplay = pygame.display.set_mode((display_width, display_height)) 

# init font object with font size 25 
font = pygame.font.SysFont(None, 25) 

def message_to_display(msg, color): 
    screen_text = font.render(msg, True, color) 
    gameDisplay.blit(screen_text, [10, 10]) 

message_to_display("You Lose", red) 
time.sleep(3) 

pygame.quit() 
# you can signoff now, everything looks good! 
quit() 
+1

'red' в' message_to_display («Вы теряете», красный) 'не определен нигде –

ответ

2

Причина вы ничего не видите, потому что вы не обновленный или 'переворачивается' дисплей. После того, как вы создали текст Surface и blit его на gameDisplay Surface, вам нужно обновить/«перевернуть» дисплей, чтобы он стал видимым для пользователя.

Таким образом, между message_to_display("You Lose", red) и time.sleep(3) вы положили pygame.display.update() или pygame.display.flip() (это не имеет значения, какой). Как это:

# import library here 
import pygame 
import time 
import sys 

# display init 
display_width = 800 
display_height = 600 

# game initialization done 
pygame.init() 

# game display changed 
gameDisplay = pygame.display.set_mode((display_width, display_height)) 

# init font object with font size 25 
font = pygame.font.SysFont(None, 25) 

def message_to_display(msg, color): 
    screen_text = font.render(msg, True, color) 
    gameDisplay.blit(screen_text, [10, 10]) 

message_to_display("You Lose", red) 
pygame.display.update() # VERY IMPORTANT! THIS IS WHAT YOU MISSED! 
time.sleep(3) 

pygame.quit() 
# you can signoff now, everything looks good! 
quit() 

Кроме того, как J.J. Hakala указал, что вы должны определить красный в message_to_display("You Lose", red) также.

Смежные вопросы