通电与列表一起产生,但不会重生

2024-10-03 11:16:49 发布

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

我正在做一个驾驶游戏,我一直在努力的电源,产卵。我在car类(incomming traffic)中创建了一个系统,它将生成一个随机变量,如果它落在正确数量的数字之间,它将附加一个加电,并生成一个加电。但要知道,如果有另一辆车经过,它会打印(嘿,它发生了),什么也不会产生。谢谢你的帮助

这是通电课程

class powerups(pygame.sprite.Sprite):
    def __init__(self):
        self.x_pos = -20
        self.KC = pygame.image.load('kyle coin3.png')
        self.rect = self.KC.get_rect(topleft= (self.x_pos, 0))
        self.random = int
        self.roadleft = 150
        self.roadright = 300
        self.fg = True
        self.rect.x = random.randint(self.roadleft, self.roadright)

    def draw(self, win):
        win.blit(self.KC, self.rect.topleft)
    def move(self):
        self.rect.y += 5
    def collisioncheck (self, anotherobject):
        if self.rect.colliderect(anotherobject):
            print("A collsion with a powerup has happend ")
            self.rect.x = 600
            self.grassdamage = 0
            player.damage1 =  False
            player.damage2 = False
            player.damage3= False
            player.damage4= False
            player.damage5 = False
            player.damage6 = False
            player.damage7 = False
            player.damage8 = False

这里是通电的地方

 if self.random > 5:
                print(' hey it happened')
                new_powerup = powerups()
                powerup_list.append(new_powerup)
            else:
                self.random = 10

这里是通电的地方

    for new_powerup in powerup_list:
        powerup.draw(win)
        powerup.move()
        powerup.collisioncheck(player.rect)

Tags: posrectselffalsenewdefrandompygame
1条回答
网友
1楼 · 发布于 2024-10-03 11:16:49

循环变量的名称与在循环中使用的变量的名称不同。在for-loop语句中使用了名称new_powerup,但在循环中使用了名称powerup。更改循环变量的名称:

for powerupin powerup_list:
    powerup.draw(win)
    powerup.move()
    powerup.collisioncheck(player.rect)

相关问题 更多 >