現在、作業中の小さなプロジェクト用にいくつかのGUIコードを作成しており、スクロールバーとそれに関連するコンテナーを実装する必要があります。実行を簡単にするために、「スクロールボックス」(スクロールバーが影響するウィンドウ)内のすべての要素を、メインの表示面とは別の面に描画できるようにしたいと思います。次に、別のサーフェスが必要に応じてトリミングされ、レンダリングループの表示サーフェスに描画されます。ただし、これを機能させるのに問題があります。
私のクラスのdraw()
メソッドには、次のコードがあります。ScrollBox
def draw(self):
self.subSurface.blit(self.image, (x, y))
#subSurface is, naturally, a Surface, and image is a pygame.Image; x and y are whatever
self.displaySurface.blit(self.subSurface, (x,y))
私のコードのすべての描画可能なGUI要素と同様にdraw()
、メインのレンダリングループを通過するたびに呼び出されます。上記のコードが私に与えるのは、デフォルトの塗りつぶされた黒いRectでありself.image
、どの容量でも表示されません。最初の行を次のように置き換えてみました
pygame.draw.rect(self.subSurface, color, rect)
しかし、同じ結果が得られました。他のPygameGUIライブラリを読んだところ、やりたいことは可能だと思いますが、正しく実行されていないと思います。他のソース/サーフェスをアタッチしてから(ソースをアタッチした状態で)描画するにはどうすればよいsubSurface
ですか?subSurface
displaySurface
どんな助けでも大歓迎です。ありがとう。