1
저는 플랫폼 작성자를 만들고 있으며 백그라운드를 블리 칭할 때 문제가 발생했습니다. 현재 코드에서 게임 루프는 모든 프레임의 게임 창에 배경을 그립니다. 단색이 아닌 배경을 사용하려고 할 때 게임이 실제로 느려집니다. 제 질문은 게임이 너무 느려지지 않도록 가능한 한 배경을 한 번만 블리트하는 방법입니다.파이 게임에서 백그라운드를 한 번만 블리트하려면 어떻게해야합니까?
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 –