【发布时间】:2015-10-27 23:27:12
【问题描述】:
所以,我有了我的人形,我可以以回合制方式在我的地图上导航。我单击该图形,然后单击一个新位置,该图形移动到该位置(立即,没有运行动画等)。现在,如果图形遇到了一些东西,我希望它停止并让 pygame 显示一个窗口。当窗口打开时,我希望背景中的所有内容都停止,以便在那段时间我不能移动我的身影(例如)。我希望单击按钮后窗口消失。我就是这样做的:
if char.colided:
DISPLAYSURFACE.blit(window,(5*TILESIZE,8*TILESIZE,200,400))
but_OK=Button('OK', 12*TILESIZE, 9*TILESIZE, 80, 40)
but_OK.draw()
a=False
while not a:
pygame.event.clear()
for event in pygame.event.get():
if event.type == pygame.MOUSEBUTTONDOWN:
if but_OK.check_click(event.pos):
a=True
char.colided=False
一切正常,但问题是,一旦我做出使我的图形与一个对象或另一个图形发生碰撞的动作,pygame 就不再显示它了。这意味着我进入了 while 循环,但在屏幕上我的图形没有移动并且窗口没有弹出。在我“隐藏”(例如最小化)pygame 窗口之后,更改首先出现。我能想到的避免这种情况的唯一方法是在 while 循环中再次显示所有内容,但这是很多东西,所以我想尽可能避免这种情况。如有必要,我也可以发送其余代码,但我现在不想这样做,因为这些代码将近 400 行,我真的不知道在这种情况下哪个部分是重要的
【问题讨论】: