首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Pygame - blit导致延迟

Pygame - blit导致延迟
EN

Stack Overflow用户
提问于 2021-02-26 22:21:04
回答 2查看 68关注 0票数 0

我正在做一个简单的platformer游戏,当我使用pygame.surface.blit()添加背景时,它会导致很多延迟,但是当我使用pygame.suface.fill()时,它的运行速度是~120fps。

我该如何解决这个问题?

代码语言:javascript
复制
# map vars
mapFloor = []
ground = 700
mapController(True)
bg1Colour = bg1Colour = transform.scale(image.load('assets/PNG/Backgrounds/set1_background.png'), (1280, 1024))
bg1Colour = [bg1Colour, bg1Colour.get_rect()]
bg1Tiles = transform.scale(image.load('assets/PNG/Backgrounds/set1_tiles.png'), (1280, 1024))
bg1Tiles = [bg1Tiles, bg1Tiles.get_rect()]
bg1Hills = transform.scale(image.load('assets/PNG/Backgrounds/set1_hills.png'), (1280, 1024))
bg1Hills = [bg1Hills, bg1Hills.get_rect()]            
           


while not finished:

    for events in event.get():
        exiCheck()
        playerController(True)

    surface.blit(bg1Colour[0], bg1Colour[1])
    surface.blit(bg1Tiles[0], bg1Tiles[1])
    surface.blit(bg1Hills[0], bg1Hills[1])

    mapController(False)
    player = playerController(False)

    display.flip()
    clock.tick(120)
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-02-26 23:08:25

确保背景曲面与显示曲面具有相同的格式。使用convert() (或convert_alpha())创建具有相同像素格式的曲面。当背景在显示器上为blit时,这会提高性能,因为格式是兼容的,并且blit不需要执行隐式转换。

代码语言:javascript
复制
bg_surf = image.load('assets/PNG/Backgrounds/set1_background.png').convert()
bg1Colour = bg1Colour = transform.scale(bg_surf, (1280, 1024))
票数 1
EN

Stack Overflow用户

发布于 2021-02-26 22:53:52

只需尝试不使用列表或元组尝试,这样终端就不应该检查列表,而只使用有符号的值

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66387501

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档