当前位置: 首页 > 知识库问答 >
问题:

Pygame清除屏幕

党建义
2023-03-14

我制作了一个类,在draw函数中,我画了一个文本区域,一些静态文本,并给屏幕上色。draw函数位于while循环中。我希望整个pygame屏幕除输入框外都清晰,并且我希望屏幕改变颜色。我该怎么做?我的代码如下:

#########################################################################################

从设置导入*

从TextInput导入*

从绘图导入*

皮加梅。init()pygame。字体。init()

类Txt():

def __init__(self):

    self.running = True

    pygame.display.set_caption('TruTxt')

    self.input_box = InputBox(50, 550, 1200, 300)

def run(self):

    while self.running:

        self.events()

        self.draw()

def events(self):

    events = pygame.event.get()

    for event in events:

        if event.type == pygame.QUIT:

            self.running = False

        if event.type == pygame.K_RETURN:

            pass

        self.input_box.handle_event(event)

def draw(self):

    start()

    self.input_box.draw(screen)

    pygame.display.flip()

T=Txt()

而t.running:

t.run()

pygame.quit()

def start():

screen.fill((0, 0, 255))

myfont = pygame.font.SysFont('Comic Sans MS', 64, True)
displaytxt = myfont.render(hellotxt , True, (255, 255, 255))
screen.blit(displaytxt, (300, 30))

myfont = pygame.font.SysFont('Comic Sans MS', 24)
displaytxt = myfont.render(wlcmtxt , True, (255, 215, 0))        
screen.blit(displaytxt, (30, 200))

myfont = pygame.font.SysFont('Comic Sans MS', 39, True)
displaytxt = myfont.render(strttxt , True, (255, 255, 255))        
screen.blit(displaytxt, (28, 370))

myfont = pygame.font.SysFont('Comic Sans MS', 28, False, True)
displaytxt = myfont.render(destxt , True, (255, 215, 0))        
screen.blit(displaytxt, (165, 450))`

共有1个答案

沈淇
2023-03-14

从你文章顶部的总结中,我可以得出结论,你需要做的只是在循环的每次迭代中重新绘制屏幕

screen.fill(color)
#redraw screen
 类似资料:
  • 我做了一些研究,看看我是否可以用这种方式解决这个问题,但似乎没有找到任何解决我问题的方法。我发现了这两个问题:为什么我的pygame显示器没有显示任何东西?对为什么PyGame显示屏是黑屏感到困惑。我试图用评论中的建议来解决我的问题,但没有成功,或者问题的原因与我的不同。 当我运行代码时,pygame窗口会显示,但完全是黑色的,但不会调用任何错误。

  • 我在互联网上看了很多,但不知何故,找不到任何好处,总是清除屏幕在渲染方法或不太理解它。 那么清除屏幕的好处是什么?清除不会导致游戏在每次调用render方法时从头开始绘制所有内容吗?

  • 问题内容: 使用终端上的命令只会使用户误以为屏幕已被清除…使用鼠标滚动时,您仍然可以看到以前命令的输出。当您淹没在文本海啸中时,这将使生活变得困难。 可以在Internet上找到的各种解决方案(转义码等)只是clear命令已经完成的工作的变体。 那么,如何真正清除Linux中终端的内容呢? 问题答案: 使用以下命令可以清晰显示屏幕,而不仅仅是添加新行… 是的,这是bash提示上的“ printf”

  • 问题内容: 这个问题已经在这里有了答案 : Java:清除控制台 (12个答案) 4年前关闭。 是否有任何选项可以将Java中的屏幕清除为C中的clrscr()。 问题答案: 随着肮脏的黑客的袭击,我喜欢msparer的解决方案。我见过的一种甚至更脏的方法(我自己不会做。我发誓。的确如此。)是在控制台上写了一堆换行符。这根本不会清除屏幕,但是会给用户带来清晰屏幕的错觉。

  • 问题内容: 运行GO脚本时,Golang中是否有任何标准方法可以清除终端屏幕?还是我必须使用其他一些库? 问题答案: 注意: 运行命令以清除屏幕不是安全的方法。在这里也检查其他答案。 您必须为每个不同的OS定义一个清晰的方法,像这样。当用户的操作系统不受支持时,它会慌乱 (命令执行来自@merosss的答案)

  • 问题内容: 我正在为Swift2中的命令行编写BASIC解释器,但是我找不到实现简单命令CLS(从终端清除所有文本的方法)的方法。我应该只是在循环中打印空格还是有功能?我不知道那会清除终端屏幕吗? 问题答案: 将内置命令与 或(询问Google) 或者,通过命令行使用AppleScript模拟Ctrl + L的按下: 编辑:在较新版本的Swift中不再可用。