我正在尝试在我的游戏中加入一个回合制,我不知道为什么它不起作用

2024-09-29 23:24:22 发布

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

spawned = False     #Global Variable
def timer(clockTime,forwardTime,spawned):
    if pygame.time.get_ticks() >= forwardTime:
        forwardTime = pygame.time.get_ticks() + 600
        clockTime += 1
    if clockTime ==21:
        bird.rounds += 1
        clockTime = 0
        spawned = False
        print(spawned)
    return clockTime,forwardTime,spawned

def Rounds(spawned):
    if bird.rounds ==1 and spawned == False:    
        blob = Enemy(random.randint(200,1000),random.randint(200,300))
        blob.target=bird
        all_sprites = pygame.sprite.Group([blob, bird])
        enemies = pygame.sprite.Group([blob])
        spawned ==True
        print(spawned)
    elif bird.rounds ==2 and spawned ==False:
        blob = Enemy(random.randint(200,1000),random.randint(200,300))
        blob2 = Enemy(random.randint(200,1000),random.randint(100,200))
        blob.target=bird
        blob2.target=bird
        all_sprites = pygame.sprite.Group([blob, bird,blob2])
        enemies = pygame.sprite.Group([blob,blob2])
        spawned == True
    elif bird.rounds ==3 and spawned ==False:
        blob = Enemy(random.randint(200,1000),random.randint(200,300))
        blob2 = Enemy(random.randint(200,1000),random.randint(200,300))
        blob3 = Enemy(random.randint(200,1000),random.randint(200,300))
        blob.target=bird
        blob2.target=bird
        blob3.target=bird
        all_sprites = pygame.sprite.Group([blob, bird,blob2,blob3])
        enemies = pygame.sprite.Group([blob,blob2,blob3])
        spawned ==True
    elif bird.rounds ==4 and spawned ==False:
        blob = Enemy(random.randint(200,1000),random.randint(200,300))
        blob2 = Enemy(random.randint(200,1000),random.randint(200,300))
        blob3 = Enemy(random.randint(200,1000),random.randint(200,300))
        blob4 = Enemy(random.randint(200,1000),random.randint(200,300))
        blob.target=bird
        blob2.target=bird
        blob3.target=bird
        blob4.target=bird
        all_sprites = pygame.sprite.Group([blob, bird,blob2,blob3,blob4])
        enemies = pygame.sprite.Group([blob,blob2,blob3,blob4])
        spawned ==True
    elif bird.rounds ==5 and spawned ==False:
        blob = Enemy(random.randint(200,1000),random.randint(200,300))
        blob2 = Enemy(random.randint(200,1000),random.randint(200,300))
        blob3 = Enemy(random.randint(200,1000),random.randint(200,300))
        blob4 = Enemy(random.randint(200,1000),random.randint(200,300))
        blob5 = Enemy(random.randint(200,1000),random.randint(200,300))
        blob.target=bird
        blob2.target=bird
        blob3.target=bird
        blob4.target=bird
        blob5.target=bird
        all_sprites = pygame.sprite.Group([blob, bird,blob2,blob3,blob4,blob5])
        enemies = pygame.sprite.Group([blob,blob2,blob3,blob4,blob5])
        spawned ==True
    elif bird.rounds ==6 and spawned ==False:
        blob = Enemy(random.randint(200,1000),random.randint(200,300))
        blob2 = Enemy(random.randint(200,1000),random.randint(200,300))
        blob3 = Enemy(random.randint(200,1000),random.randint(200,300))
        blob4 = Enemy(random.randint(200,1000),random.randint(200,300))
        blob5 = Enemy(random.randint(200,1000),random.randint(200,300))
        blob6 = Enemy(random.randint(200,1000),random.randint(200,300))
        blob.target=bird
        blob2.target=bird
        blob3.target=bird
        blob4.target=bird
        blob5.target=bird
        blob6.target=bird
        all_sprites = pygame.sprite.Group([blob, bird,blob2,blob3,blob4,blob5,blob6])
        enemies = pygame.sprite.Group([blob,blob2,blob3,blob4,blob5,blob6])
        spawned ==True
    elif bird.rounds ==7 and spawned ==False:
        blob = Enemy(random.randint(200,1000),random.randint(200,300))
        blob2 = Enemy(random.randint(200,1000),random.randint(200,300))
        blob3 = Enemy(random.randint(200,1000),random.randint(200,300))
        blob4 = Enemy(random.randint(200,1000),random.randint(200,300))
        blob5 = Enemy(random.randint(200,1000),random.randint(200,300))
        blob6 = Enemy(random.randint(200,1000),random.randint(200,300))
        blob7 = Enemy(random.randint(200,1000),random.randint(200,300))
        blob.target=bird
        blob2.target=bird
        blob3.target=bird
        blob4.target=bird
        blob5.target=bird
        blob6.target=bird
        blob7.target=bird
        all_sprites = pygame.sprite.Group([blob, bird,blob2,blob3,blob4,blob5,blob6,blob7])
        enemies = pygame.sprite.Group([blob,blob2,blob3,blob4,blob5,blob6,blob7])
        spawned ==True
    elif bird.rounds ==8 and spawned ==False:
        blob = Enemy(random.randint(200,1000),random.randint(200,300))
        blob2 = Enemy(random.randint(200,1000),random.randint(200,300))
        blob3 = Enemy(random.randint(200,1000),random.randint(200,300))
        blob4 = Enemy(random.randint(200,1000),random.randint(200,300))
        blob5 = Enemy(random.randint(200,1000),random.randint(200,300))
        blob6 = Enemy(random.randint(200,1000),random.randint(200,300))
        blob7 = Enemy(random.randint(200,1000),random.randint(200,300))
        blob8 = Enemy(random.randint(200,1000),random.randint(200,300))
        blob.target=bird
        blob2.target=bird
        blob3.target=bird
        blob4.target=bird
        blob5.target=bird
        blob6.target=bird
        blob7.target=bird
        blob8.target=bird
        all_sprites = pygame.sprite.Group([blob, bird,blob2,blob3,blob4,blob5,blob6,blob7,blob8])
        enemies = pygame.sprite.Group([blob,blob2,blob3,blob4,blob5,blob6,blob7,blob8])
        spawned ==True
    elif bird.rounds ==9 and spawned ==False:
        blob = Enemy(random.randint(200,1000),random.randint(200,300))
        blob2 = Enemy(random.randint(200,1000),random.randint(200,300))
        blob3 = Enemy(random.randint(200,1000),random.randint(200,300))
        blob4 = Enemy(random.randint(200,1000),random.randint(200,300))
        blob5 = Enemy(random.randint(200,1000),random.randint(200,300))
        blob6 = Enemy(random.randint(200,1000),random.randint(200,300))
        blob7 = Enemy(random.randint(200,1000),random.randint(200,300))
        blob8 = Enemy(random.randint(200,1000),random.randint(200,300))
        blob9 = Enemy(random.randint(200,1000),random.randint(200,300))
        blob.target=bird
        blob2.target=bird
        blob3.target=bird
        blob4.target=bird
        blob5.target=bird
        blob6.target=bird
        blob7.target=bird
        blob8.target=bird
        blob9.target=bird
        all_sprites = pygame.sprite.Group([blob, bird,blob2,blob3,blob4,blob5,blob6,blob7,blob8,blob9])
        enemies = pygame.sprite.Group([blob,blob2,blob3,blob4,blob5,blob6,blob7,blob8,blob9])
        spawned ==True
    elif bird.rounds ==10 and spawned ==False:
        blob = Enemy(random.randint(200,1000),random.randint(200,300))
        blob2 = Enemy(random.randint(200,1000),random.randint(200,300))
        blob3 = Enemy(random.randint(200,1000),random.randint(200,300))
        blob4 = Enemy(random.randint(200,1000),random.randint(200,300))
        blob5 = Enemy(random.randint(200,1000),random.randint(200,300))
        blob6 = Enemy(random.randint(200,1000),random.randint(200,300))
        blob7 = Enemy(random.randint(200,1000),random.randint(200,300))
        blob8 = Enemy(random.randint(200,1000),random.randint(200,300))
        blob9 = Enemy(random.randint(200,1000),random.randint(200,300))
        blob10 = Enemy(random.randint(200,1000),random.randint(200,300))
        blob.target=bird
        blob2.target=bird
        blob3.target=bird
        blob4.target=bird
        blob5.target=bird
        blob6.target=bird
        blob7.target=bird
        blob8.target=bird
        blob9.target=bird
        blob10.target=bird
        all_sprites = pygame.sprite.Group([blob, bird,blob2,blob3,blob4,blob5,blob6,blob7,blob8,blob9,blob10])
        enemies = pygame.sprite.Group([blob,blob2,blob3,blob4,blob5,blob6,blob7,blob8,blob9,blob10])
        spawned ==True
    return all_sprites,enemies,spawned

pygame.init()                               # Pygame is initialised (starts running)

players = pygame.sprite.Group()
screen = pygame.display.set_mode([1250,850]) # Set the width and height of the screen [width,height]
pygame.display.set_caption("My Game")       # Name your window
background_image = pygame.image.load("untilted.png")

done = False                                # Loop until the user clicks the close button.

clock = pygame.time.Clock()                 # Used to manage how fast the screen updates
black    = (   0,   0,   0)                 # Define some colors using rgb values.  These can be
white    = ( 255, 255, 255)                 # used throughout the game instead of using rgb values.
font = pygame.font.Font(None,36)
# Define additional Functions and Procedures here
score = 0
bird = Character()
rounds = 0
clockTime = 0
forwardTime = 0
bullet = Bullet(pygame.mouse.get_pos(),[bird.rect.x,bird.rect.y])

# -------- Main Program Loop -----------
while done == False:


    for event in pygame.event.get():        # Check for an event (mouse click, key press)
        key = pygame.key.get_pressed()
        if event.type == pygame.QUIT:       # If user clicked close window
            done = True                     # Flag that we are done so we exit this loop
        elif key[pygame.K_e]:
            bullet = Bullet(pygame.mouse.get_pos(),[bird.rect.x,bird.rect.y])
            bullet.rect.x = bird.rect.x
            bullet.rect.y = bird.rect.y
            all_sprites.add(bullet)
    screen.blit(background_image, (0, 0))
    clockTime,forwardTime,spawned = timer(clockTime,forwardTime,spawned)
    all_sprites,enemies,spawned = Rounds(spawned)
    all_sprites.update(enemies)
    all_sprites.draw(screen)
    textImg = font.render("Score: " + str(bird.score),1,white)
    textImg2 = font.render("Lives: " + str(bird.heart),1,white)
    textImg3 = font.render("Round: " + str(bird.rounds),1,white)
    textImg4 = font.render("clock " + str(clockTime),1,white)
    screen.blit(textImg,(10,10))
    screen.blit(textImg2,(150,10))
    screen.blit(textImg3,(300,10))
    screen.blit(textImg4,(700,10))
    pygame.display.update()                   # Go ahead and update the screen with what we've drawn.

    clock.tick(20)                              # Limit to 20 frames per second
    if bird.heart == 0:
        pygame.quit()

    pygame.quit()

当我运行代码时,它会每秒生成敌人,而不是在回合结束时生成敌人,因此当我运行代码时,敌人的坐标会反复更改,但是当它命中下一回合时,它确实会生成敌人,但是敌人的坐标会像其他的坐标一样每秒随机变化。你知道吗


Tags: targetgrouprandompygameblobrandintspritebird

热门问题