読者です 読者をやめる 読者になる 読者になる

進捗(3)

前回のエントリでCPU使用率が50%を超える件。

画像フォントを使って1文字ずつ描画(screen.blit)しているんだけど、読み込んだ画像を2倍に拡大して表示している。元の画像イメージは1枚のpngファイル。この描画処理がお粗末だった。

具体的には、2倍に拡大したフォント画像をscreen.blitするために、

  • フレーム(1/60sec)ごとに、
  • 描画したいそれぞれの文字ごとに、
  • 画像イメージを丸ごと2倍に拡大、
  • 抜き出したい文字を示すRectも初期化時に生成していたx, y, width, heightを2倍にしたものを再作成

という手順を踏んでいた。

予め2倍に保持しておくことで解決。これで22%前後になった。それでもまだ全然だけど。

追記。
フォント以外でも同じように毎フレームpygame.transform.scaleとRectの拡大をして描画している処理があったので、それを全て廃止。そしたら12%前後に落ち着いた。