1

私がやろうとしているのは、背景のごく一部を表示するビューポートを作成することです。(そして後でスプライトを入れます)。

しかし、私が気づいた問題は、動き始めたときに背景がぼやけるという問題があるようです. これがブリッティングが遅いためなのか、コードの問題によるものなのか、私にはわかりませんでした。他の人がスクロールする背景をブリットまたは作成する方法の例を探していて、この記事を見つけました:スクロール ゲーム

私は彼らの簡単な例を使用しましたが、スクロールすると背景がぼやけて見えることを確認しました (別名、背景をオフセットでブリット)。なんらかの理由で FPS が落ちているのではないかと思いましたが、まったく逸脱していません。他の 2D ゲームでこのような問題を思い出せません。常にシフトしているため、モーションブラーが発生する可能性があることを理解しています。これを軽減するために私が何かできることはないかと考えています。私が行方不明になっている可能性のあるものに誰かが参加できますか? フィードバックやヘルプをいただければ幸いです。ありがとうございました

4

2 に答える 2

3

あなたが直面した問題の原因はわかりませんでしたが、それはダブルバッファリングに関連していると思います。

少なくとも2つのサーフェスを使用しましたか?

# preparing two surfaces in __init__()
screen = pygame.display.set_mode((800,600))
background = pygame.Surface(screen.get_size())
background.fill((250, 250, 250))

# called at every step in main loop
# draw images on the background surface
background.blit(image, position)
....

# blit background to screen
screen.blit(background, (0, 0))
pygame.display.flip()

画面表面に直接画像を描画すると、フリックが発生します。

于 2009-12-09T13:53:59.760 に答える
0

「ぼやける」とは、背景が「二重」に見えるということですか?通常サイズ (例: 64x64) のスプライトを移動しても同じ効果が得られますか?

二重に表示される場合は、おそらくリフレッシュ レートの問題です。vsync をオンにすると役立つ場合があります。

どのフレームレートを取得していますか?

アニメーションを 10 FPS 程度まで遅くすると、同じ問題が発生しますか?

于 2009-12-09T06:39:04.423 に答える