so

pygame描画 二層構成と単発flip罠

二層構成(可読性)

「×1で描いてニアレスト整数倍」を文字にも適用すると小グリフがガビガビで読めない。だから二層:

  • 盤面ドット(マス・エンボス・地雷・旗)= ×1 で硬く描いてニアレスト整数倍(チャンキーな95)。
  • 文字(数字・隅の情報・ラベル)= 最終解像度で大きく・AA無しで重ねる。 読みやすさはサイズと字形で稼ぐ(滑らかさでは稼がない)。

単発flip罠(実際に踏んだ)

「変化した時だけ flip」にすると、起動時に1回 flip したきり以後 flip せず、コンポジタ無しの X (Xvfb/noVNC)では最初の flip が窓のマップ前に飛んで内容が失われ、窓が真っ白=「開かない」

  • 正解flipキャッシュの blit は毎フレーム(安価)。重い再合成(全マスのPython ループ)だけ dirty フラグで間引く。窓は常に提示され空白化せず、軽さも保てる。

正典:ambient-minesweeper/NOTES.md(§3・§7)。関連 devコンテナで日本語を出す