2016-04-29 51 views
0

我看了一堆教程,但我似乎無法弄清楚如何使用Pygame來完成Python 3上的字體。這裏是我的代碼:Pygame 3字體不會工作

import pygame 
import time 
import font 
pygame.init 

white = (255,255,255) 
black = (0,0,0) 
red = (255,0,0) 

display_width = 800 
display_height = 600 

gameDisplay = pygame.display.set_mode((display_width,display_height)) 

pygame.display.set_caption('Slither') 

gameExit = False 

lead_x = display_width/2 
lead_y = display_height/2 

lead_x_change = 0 
lead_y_change = 0 

clock = pygame.time.Clock() 

block_size = 10 
FPS = 30 

font = pygame.font.SysFont(None, 25) 

def message_to_screen(msg,color): 
    screen_text = font.render(msg, True, color) 
    gameDisplay.blit(screen_text, [display_width/2, display_height/2]) 
while not gameExit: 
    for event in pygame.event.get(): 
     if event.type == pygame.QUIT: 
      gameExit = True 
     if event.type == pygame.KEYDOWN: 
      if event.key == pygame.K_LEFT: 
       lead_x_change = -block_size 
       lead_y_change = 0 
      elif event.key == pygame.K_RIGHT: 
       lead_x_change = block_size 
       lead_y_change = 0 
      elif event.key == pygame.K_UP: 
       lead_y_change = -block_size 
       lead_x_change = 0 
      elif event.key == pygame.K_DOWN: 
       lead_y_change = block_size 
       lead_x_change = 0 

    if lead_x >= display_width or lead_x < 0 or lead_y >= display_height or lead_y < 0: 
     gameExit = True 


    lead_x += lead_x_change 
    lead_y += lead_y_change 

    gameDisplay.fill(white) 
    pygame.draw.rect(gameDisplay, black, [lead_x,lead_y,block_size,block_size]) 
    pygame.display.update() 

    clock.tick(FPS) 

message_to_screen("You Lose", True, red) 
pygame.display.update() 
time.sleep(2)  
pygame.quit() 
quit() 
+0

我一直在關注「新波士頓」教程,而他的工作就是在他這樣做的時候。我是一名初學者。 –

+0

@Penguini_The_Penguin你在代碼中沒有做錯任何事情,只是你忘記在'pygame.init'之後放置圓括號。您可以在'SysFont'中傳遞* None *;它會加載默認字體。 –

回答

-1

字體= pygame.font.SysFont(「宋體」,25)

+0

謝謝。這解決了它。對不起,我對python不太瞭解。 –

0

你的代碼被罰款,除了3號線和4號線你不import font因爲你的字體'使用是pygame模塊的一部分。之所以出現錯誤「pygame.error:字體未初始化」是因爲你永遠不會初始化pygame模塊。在第4行,你必須用括號寫pygame.init()

這就是爲什麼你的代碼不工作。除了這兩行之外,代碼很好。

我無奈之舉邁克Pomax「Kamermans,並用這些答案只要你馬里昂巴德,因爲pygame docs明確規定:

「如果文件名是無Pygame的默認字體將被載入「。