如何在多个条件下生成正确的for循环

2024-04-25 22:10:10 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在做一个游戏,它会把角色(自己)向下移动。。你知道吗

在下面的代码中,我试图做的是,当检测到冲突时,根据冲突是从底部(在这种情况下,角色在前面可见)还是从顶部(角色在前面可见)进入建筑物来重新排序窗口小部件

问题是下面的代码正在删除并读取building小部件。我已经修改这个语句大约一个小时了,不管我做什么,第一个if语句总是正确的,即使我将>;的方向改为<;,它仍然是正确的。 我做错什么了?我希望这只是一个简单的错误,在我的for循环有关的建筑高度或东西。你知道吗

elif keycode[1] == 'down':

如果角色走下并与建筑重叠,请将建筑放置在角色前面

    if any(self.collide_widget(i) and self.y>(i.y+i.height) for i in listofwidgets):
        gamelayout.remove_widget(building)
        gamelayout.add_widget(building)

如果角色已经向上行走并与建筑碰撞,则向下行走应移除并重新添加英雄小部件,使其保持在建筑前面

    elif any(self.collide_widget(i) and self.y<(i.y+i.height) for i in listofwidgets):
        gamelayout.remove_widget(hero)
        gamelayout.add_widget(hero)

Tags: and代码self角色forif部件any