gpt4 book ai didi

python - 更新 python 中的部分表面或透明表面

转载 作者:太空宇宙 更新时间:2023-11-03 19:39:35 25 4
gpt4 key购买 nike

我有一个用 python 编写的应用程序,它基本上是一个 eclipse 刻草图,您使用 WASD 和箭头键移动像素,它会留下一条痕迹。但是,我想为屏幕上的像素数量添加一个计数器。如何在不更新整个表面和破解像素图的情况下更新计数器?

或者,我可以制作一个除文本之外完全透明的表面,以便您可以看到下面的绘图表面吗?

最佳答案

为了解决这个问题,您需要为 Etch-a-Sketch 像素提供一个单独的表面,这样当您刷新屏幕时它们就不会被破坏。不幸的是,使用 Rigo 的方案,字体将继续在其自身之上渲染,这将因超过两个像素计数变化而变得困惑。

所以,这是一些示例渲染代码:

# Fill background
screen.fill((0xcc, 0xcc, 0xcc))
# Blit Etch-a-Sketch surface (with the drawing)
# etch_surf should be the same size as the screen
screen.blit(etch_surf, (0, 0))
# Render the pixel count
arial = pygame.font.SysFont('Arial', 20)
counter_surf = arial.render(str(pixel_count), True, (0, 0, 0))
screen.blit(counter_surf, (16, 16))
# Refresh entire screen
pygame.display.update()

不可否认,现在更新整个屏幕的效率相当低。为此,您有两个选择:仅在绘图更改时刷新屏幕,或者跟踪绘图更改的位置并刷新各个位置(请参阅 update documentation )。如果您选择第二个选项,则必须刷新文本及其之前的位置;我建议有一个 Sprite管理这个。

关于python - 更新 python 中的部分表面或透明表面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1072734/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com