我的朋友和我正在PyGame上做一個問答遊戲,想知道當用戶按下一個按鈕時,他可以進入下一個問題(而不會離開前面的文本)。如何在pygame中清除屏幕?
2
A
回答
1
在您的遊戲循環中,在繪製新框架之前,請使用背景顏色填充框架。
實施例:
ball = pygame.Rect(0,0,10,10)
while True:
mainSurface.fill((0,0,0))
pygame.draw.circle(display,(255,255,255),ball.center,5)
ball.move_ip(1,1)
pygame.display.update()
的關鍵點是mainSurface.fill這將清除以前的幀。
4
首先,我建議你去PyGame文檔並閱讀一下PyGame。 (Link)
但是爲了節省您的時間,您必須在屏幕上繪製新的形狀/文字之前,必須使用功能screen.fill(#Your chosen colour)
。這是PyGame中的功能,它可以擺脫舊屏幕,並允許您將新項目繪製到清晰的屏幕上,而不需要在那裏留下透視圖。
實施例:
import pygame
import sys
from pygame.locals import *
white = (255,255,255)
black = (0,0,0)
red = (255, 0, 0)
class Pane(object):
def __init__(self):
pygame.init()
self.font = pygame.font.SysFont('Arial', 25)
pygame.display.set_caption('Box Test')
self.screen = pygame.display.set_mode((600,400), 0, 32)
self.screen.fill((white))
pygame.display.update()
def addRect(self):
self.rect = pygame.draw.rect(self.screen, (black), (175, 75, 200, 100), 2)
pygame.display.update()
def addText(self):
self.screen.blit(self.font.render('Hello!', True, black), (200, 100))
pygame.display.update()
def addText2(self):
self.screen.blit(self.font.render('Hello!', True, red), (200, 100))
pygame.display.update()
def functionApp(self):
if __name__ == '__main__':
self.addRect()
self.addText()
while True:
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit(); sys.exit();
if event.type == pygame.KEYDOWN:
if event.key == pygame.K_ESCAPE:
self.screen.fill(white)
self.addRect()
self.addText2() #i made it so it only changes colour once.
display = Pane()
display.functionApp()
相關問題
- 1. 如何在Xcode中清除屏幕
- 2. LibGDX - 如何清除屏幕
- 3. 在IPython中清除屏幕
- 4. 在OpenGL中清除屏幕
- 5. 在Android中清除屏幕
- 6. 清除屏幕
- 7. 清除屏幕
- 8. 如何在C中清除屏幕區域或重繪屏幕#
- 9. 如何清除gcc中的屏幕?
- 10. 如何清除TASM中的屏幕?
- 11. 如何清除MySQL中的屏幕?
- 12. 如何清除SICStus Prolog中的屏幕
- 13. 如何將pygame屏幕放在中間?
- 14. pygame-如何變暗屏幕
- 15. 如何捕獲pygame屏幕?
- 16. 清除屏幕C
- 17. localStorage清除屏幕
- 18. Java清除屏幕
- 19. 清除Python中屏幕
- 20. 在Xcode清除屏幕
- 21. 如何正確清除使用pygame在屏幕上「blitting」的所有圖像?
- 22. 如何使用javascript清除屏幕?
- 23. 如何清除gdb命令屏幕?
- 24. 如何有效地清除屏幕
- 25. 如何清除串行屏幕?
- 26. GNU屏幕:如何清除一次滾動和屏幕
- 27. 在C++/XCode中清除屏幕
- 28. 在C++中清除屏幕命令
- 29. 在emacs中清除gdb屏幕?
- 30. 在R/RStudio中清除啓動屏幕