如何在多个条件下生成适当的for循环?

2024-05-26 07:47:45 发布

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

我正在做一个游戏,它会把角色(自己)向下移动。。我正在尝试用碰撞检测来解决一些问题。在下面的例子中,我的问题是第二行总是返回True。我在第二行中尝试的是说“如果角色与小部件发生碰撞,但是角色的y值小于它与小部件碰撞的高度的一半,那么向下移动角色

因为它总是返回True,所以我认为我的角色可以向下移动,而不考虑任何冲突和字符y值(它可以位于widgets中间部分的上方,我仍然可以向下移动)

我做错什么了

elif keycode[1] == 'down':
    if any(self.collide_widget(i) and self.y < (i.y+(i.height/2)) for i in listofwidgets):
        self.y -=6
        self.source='characters/lilmoney/walkdown.zip'
    elif (i.collide_point(self.x, self.top) for i in listofwidgets):
        self.source='characters/lilmoney/lilmoneyfront.png'

Tags: inselftrue游戏角色sourcefor部件
1条回答
网友
1楼 · 发布于 2024-05-26 07:47:45

elif语句中缺少any。所以,你只剩下一个发电机了,这总是正确的。所以,把这句话改成

elif any(i.collide_point(self.x, self.top) for i in listofwidgets):

相关问题 更多 >