1
私はプラットフォーマーを作っていて、バックグラウンドをブリッジするときに問題に遭遇しました。 私の現在のコードでは、ゲームループはフレームごとにゲームウィンドウに背景を描きます。これは単なる色ではない背景を使用したいときにゲームが実際に遅くなるようにします。 私の質問は、ゲームがそんなに遅くならないように、バックグラウンドを一度だけblitすることです(可能ならば)。ここでpygameで背景を一度だけblitする方法はありますか?
は、画像をブリッティングにつながる私のゲームのクラスの一部です:
class Game:
def __init__(self):
pg.init()
pg.mixer.init()
self.bg = pg.image.load("background.jpg")
self.screen = pg.display.set_mode((WIDTH, HEIGHT))
pg.display.set_caption(TITLE)
self.clock = pg.time.Clock()
self.running = True
self.font_name = pg.font.match_font(FONT_NAME)
self.pillarhp = 100
def new(self):
self.run()
def run(self):
self.clock.tick(FPS)
self.playing = True
while self.playing:
self.clock.tick(FPS)
self.events()
self.update()
self.draw()
def draw(self):
now = pg.time.get_ticks()
self.screen.blit(self.bg, [0, 0])
self.screen.blit(self.island, [0,0])
self.all_sprites.draw(self.screen)
self.draw_text("Score: " + str(self.score), 20, BLACK, 40, 20)
self.draw_text("Pillar HP: " + str(self.pillarhp), 20, BLACK, 40, 50)
pg.display.flip()
コードを表示してください([最小限で完全で検証可能な例](https://stackoverflow.com/help/mcve))。 – skrx
バックグラウンドサーフェスの['convert'](https://www.pygame.org/docs/ref/surface.html#pygame.Surface.convert)メソッドを呼び出します。 'self.bg = pg.image.load(" background.jpg ")。convert()'。おそらくパフォーマンスが向上します。背景イメージの大きさはどれくらいですか? – skrx
.convert()を追加しましたが、エラーが発生しました: self.bg = pg.image.load( "background.jpg")convert() pygame.error:ビデオモードが設定されていません イメージ28.0 KBと1280x700 –