pygameとそのフォントライブラリを使用するためのチュートリアルをたくさん見つけましたが、それらはすべてまったく同じものを示しています。それらはすべて、背景にプレーンテキストを書き込む方法を示しています。これは素晴らしいことですが、それを超えると、私が見つけた有用な情報はあまりありません。
私が取り組んでいるプロジェクトでは、スプライトとして実装したメニューボタンがあります。それらにカーソルを合わせると、色が変わり、すべてがうまく機能します。私がやりたいのはこれらのボタンにテキストを書くことですが、それを行う方法に困惑しています。ドキュメントからfont.renderは次のように機能します。
「これにより、指定したテキストがレンダリングされた新しいサーフェスが作成されます。Pygameでは、既存のサーフェスにテキストを直接描画する方法はありません。代わりに、Font.renderを使用する必要があります。新しいサーフェスにテキストを描画して、の画像(サーフェス)を作成します。テキストを入力してから、この画像を別のサーフェスにブリットします。」
そこで、スプライトに添付されている画像を取得して、その上にテキストを直接ブリットしようとしました。それはほとんど何もしないようです:
resume = self.button_font.render(
'Resume Game',
True,
constants.WHITE,
(23, 56, 245) # Main color of the button, tried without this as well
)
self.resume_button.image.blit(
resume,
self.resume_button.rect,
)
コードが実行されることは知っていますが、テキストは表示されません。テキストをメイン画面の表面に直接ブリットすると、再開ボタンの上部に上書きされます(もちろんブリットの順序によって異なります)。私は何が間違っているのですか?ドキュメントはこれがそれを処理する正しい方法であることを示しているようですが、私はまだこれをしている人を見つけていません。どんな助けでも大歓迎です。