この問題を解決するには、Etch-a-Sketchピクセル用に別のサーフェスを使用して、画面を更新するときに邪魔にならないようにします。残念なことに、Rigoの方式では、フォントはそれ自身の上にレンダリングされ続けます。これは、2つ以上のピクセル数の変化に対して乱雑になります。今、確かに、画面全体を更新することは、むしろ非効率的である
# 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()
:
だから、ここではいくつかのサンプルレンダリングコードです。このためには、図面が変更されたときに画面を更新するか、図面の変更箇所を追跡して個々の場所を更新するかの2つのオプションがあります(update documentation参照)。 2番目のオプションを選択した場合は、テキストを元に戻す必要があります。 Spriteをこれを管理することをお勧めします。
はい、これだけです。 eggsPixelはテキストを除いて透明で、(10,10)はカウンタ値が表示される位置です。 – Ralph