每当创建的头像与创建的碰撞盒发生碰撞时,如何从 pygame 的列表中删除图像?

问题描述 投票:0回答:1

我正在尝试在pygame中制作一个过马路的版本,并已经弄清楚了汽车和硬币的碰撞箱;然而,我试图做到这一点,以便每当头像与硬币碰撞时,它就会消失或以某种方式失去为用户评分加分的效果。

def pick_up_coin(self, coin):
    coin_hitbox = pygame.Rect(self.avatar.x, self.avatar.y,
                              self.avatar.image.get_width(), self.avatar.image.get_height())
    return coin_hitbox.colliderect(coin.x, coin.y, self.coin.image.get_width(), self.coin.image.get_height())

for j in range(len(self.coins)):
    if self.pick_up_coin(self.coins[j]):
        print("Score") and self.coins[j].kill()
pygame
1个回答
0
投票

问题是奇怪的

and
操作:

print("Score") and self.coins[j].kill()

print
的返回值为
None
(对于
A and B
,仅当
B
计算结果为true时才计算
A
项)。所以
self.coins[j].kill()
永远不会被执行。你必须把代码写成两行:

print("Score")
self.coins[j].kill()

请注意,实际上可以使用

or
而不是
and

© www.soinside.com 2019 - 2024. All rights reserved.