首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >python pygame blit函数

python pygame blit函数
EN

Stack Overflow用户
提问于 2014-07-20 02:35:22
回答 2查看 990关注 0票数 1

当我使用blit函数时,直到我调用"display.fill(bgcolor)“函数时,它才会删除之前加载的sprite以使sprite移动。问题是我有一个五颜六色的背景。那么如何在不影响背景的情况下更新图像呢?注意--我已经试过"pygame.display.update()“和"pygame.display.flip()”了--它没有用:(

代码语言:javascript
复制
class states():
def __init__(self, goku1,goku2, x, y):
    self.image=goku1
    keys=pygame.key.get_pressed()
    if keys[K_RIGHT]:
        self.image=goku2
    if keys[K_LEFT]:
        self.image=goku2

while True:
pygame.display.flip()
pygame.display.update()
obj=states(goku1, goku2, x, y)

call=position()
DISPLAYSURF.blit(obj.image, (x, y))

我卡了很长时间:(

EN

回答 2

Stack Overflow用户

发布于 2014-07-20 02:49:43

您将首先对背景进行blit,然后再对正在移动的精灵的新位置进行blit。它看起来像这样:

代码语言:javascript
复制
window= pygame.display.set_mode(WINDOWSIZE, 0, 32)

while True:
    #update events

    window.blit(your_multi_colored_background, (0, 0))
    window.blit(obj.image, (x, y))
    pygame.display.update()

希望这能有所帮助。

票数 0
EN

Stack Overflow用户

发布于 2014-07-20 02:50:23

Blit从不删除前一个元素-它不能-所有Blit元素创建一个位图。

你必须在所有循环中重新对所有元素进行blit。

或者你必须保留一部分背景在你blit sprite之前,然后用它来blit这一部分,以取代sprite来删除它。

您也可以使用带参数的pygame.display.update()来仅对背景的某些部分进行blit。

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

https://stackoverflow.com/questions/24843679

复制
相关文章

相似问题

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