1

私はパイゲームゲームを作っています。私は 3 つの面を持っています: gameDisplay(キャラクターと背景が直接レンダリングされる場所)、guiSurfそしてinvSurf pygame フォントでゲーム時間を表示するコア pyhon で作られた時計があります。クロックを にブリットし、ゲームループで とにguiSurfブリットguiSurfします。私の問題は、時計が元の場所から跡を残すことです. IE が「07:00」から「07:01」に変わると、「01」が存在しない「00」の上に表示されます。コードを投稿しますが、400行ほどあります。誰かが私が間違ったことをしたかもしれないという考えを持っていますか? 時計の写真へのリンクinvSurfgameDisplay

4

2 に答える 2

0

目に見えるように、時計は guiSurf で 2 回ブリットされます。そして、以前の時間のイメージを積み重ね続けていると思います (7:00、7:01、7.02 など)。時間を描画する前に、時計を保持しているサーフェスをクリアする必要がありますclock_surf.fill(clearcolor, clock_surf.get_rect())

于 2016-09-17T21:18:04.470 に答える
0

テキストがある場所の上に別の画像をブリットして、時間が印刷されている場所の領域を「クリア」してください。画面にサーフェスを描画すると、それは単純に 1 つの「サーフェス」になり、他の何かによって上書きされるまで常に描画されます。何か他のものをブリットする前に、このサーフェスをクリアする必要があります。そうしないと、目に見える効果が得られます。各ゲームティックの開始時に display_name.fill((0,0,0)) を呼び出すだけで、画面を「クリア」し、スピルオーバー効果なしでテキストを再描画します。もちろん、ティックごとにすべてを画面にリブリットする必要がありますが、何千ものアイテムをブリットする必要がない限り、これは問題にはなりません。すべてを再描画したくない場合は、テキストの上に小さな四角形をブリットしてから再描画すると、問題が解決するはずです。

これがあなたの問題と幸せなコーディングに役立つことを願っています!

于 2016-09-17T21:14:24.210 に答える