下面的代碼是創(chuàng)建一個(gè)按鈕,當(dāng)光標(biāo)懸停在它上面時(shí)它會(huì)改變顏色,同時(shí)結(jié)束程序,如果它被點(diǎn)擊。結(jié)果不顯示按鈕,只顯示背景。我在底部有執(zhí)行后 pygame 窗口的圖像。'''# initialisingimport pygame, syspygame.init()HEIGHT = 720WIDTH = 720screen = pygame.display.set_mode((HEIGHT,WIDTH))# colour WHITE = (255,255,255)BLACK = (0, 0 ,0 )MAROON = (128,0 ,0 )RED = (255,0 ,0 )x, y = pygame.mouse.get_pos()# rendering a text written in # this font # defining a font smallfont = pygame.font.SysFont('Corbel',35) text = smallfont.render('quit' , True , BLACK) # superimposing the text onto our button screen.blit(text,(WIDTH/2 +50, HEIGHT/2)) # describing the processwhile True: for ev in pygame.event.get(): if ev.type == pygame.QUIT: pygame.quit() #describing events if ev.type == pygame.MOUSEBUTTONDOWN: if WIDTH/2 -70 <= x <= WIDTH/2 + 70 and HEIGHT/2 -70 <= x <= HEIGHT/2 + 70: pygame.quit() pygame.display.flip() if WIDTH/2 -70 <= x <= WIDTH/2 + 70 and HEIGHT/2 -70 <= x <= HEIGHT/2 + 70: pygame.draw.rect(screen,RED,(100,100,500,500)) else: pygame.draw.rect(screen,MAROON,(100,100,500,500)) # filling screen with colour screen.fill(WHITE) # updates the frames of the game pygame.display.update() 我試過(guò) pygame.display.flip(),改變矩形的位置,但問(wèn)題沒有解決。我是 pygame 的初學(xué)者,因此才剛剛開始。
1 回答

qq_花開花謝_0
TA貢獻(xiàn)1835條經(jīng)驗(yàn) 獲得超7個(gè)贊
您必須先繪制矩形screen.fill(WHITE)
。注意pygame.Surface.fill
用純色填充整個(gè)表面。之前繪制的所有內(nèi)容都被覆蓋了。
# describing the process
while True:
? ? # [...]
? ? # filling screen with colour
? ? screen.fill(WHITE)
? ? if? WIDTH/2 -70 <= x <= WIDTH/2 + 70 and HEIGHT/2 -70 <= x <= HEIGHT/2 + 70:
? ? ? ? pygame.draw.rect(screen,RED,(100,100,500,500))?
? ? else:
? ? ? ? pygame.draw.rect(screen,MAROON,(100,100,500,500))
? ??
? ? # updates the frames of the game?
? ? pygame.display.update()?
添加回答
舉報(bào)
0/150
提交
取消