2
我剛剛寫了一些代碼在命令行中工作,所以現在我想給它一些圖形。現在,這是我的第一個編程項目,所以忍耐一下,因爲我試圖解釋這一問題:如何使用PyGame在屏幕上呈現文本?
我使用pygame的初始化和窗口如下:
import pygame, pygame.midi,pygame.font, random
(width, height) = (600, 400)
background = (220,220,220)
pygame.midi.init()
pygame.font.init()
screen = pygame.display.set_mode((width, height))
pygame.display.set_caption("Chord trainer")
screen.fill(background)
pygame.display.flip()
然後我試圖呈現文本(這不給任何錯誤):
myfont = pygame.font.SysFont("Arial", 80)
letter = myfont.render("SOME WEIRD TEST TO TRY AND GET THINGS WORKING",0,(0,0,0))
screen.blit(letter,(100,100))
而且因爲我想真正看到我的文字在程序關閉前,我建立了一個無限循環:
running = True
while running:
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
當我運行它,我只是得到我想要的灰色屏幕,但沒有任何文本,這會讓我覺得我的blit命令有什麼問題,但我無法弄清楚什麼。
最初我有一個循環的渲染集,但這只是使程序無響應,所以我拿出來進行調試。爲了完整起見,這裏是環:
while True:
# Decide on random chord
c1 = random.choice(chords)
# Make sure that no repitition takes place.
if c1==c2:
while c1==c2:
c1=random.choice(chords)
c2 = c1
myfont = pygame.font.SysFont("Arial", 80)
letter = myfont.render(str(c1),0,(0,0,0))
screen.blit(letter,(100,100))
# Listen to Midi device and search for c.
midi_listen(inp,sorted(c1))
score += 1