python - 没有发送适量的 Sprite

标签 python pygame

我想向其中 4 个 Sprite 发送垃圾邮件,但只发送 1 个垃圾邮件。

def create_lives(hearts, all_sprites):

    corazon = Heart()

    for heart_number in range(1,4):
        corazon.x = (corazon.rect.width * heart_number)- corazon.rect.width
        corazon.rect.x = corazon.x
        corazon.rect.y = 40
        hearts.add(corazon)
        all_sprites.add(corazon)

这是我的主循环:

def run_game(): 

    pygame.mixer.music.play(-1)
    score = 0
    gf.create_lives(hearts, all_sprites)
    gf.add_mobs(ai_settings, all_sprites, mobs, meteor_imgs)


    while True:

        clock.tick(FPS)

        gf.update_screen(ai_settings, screen, all_sprites, background, background_rect, hearts) 
        gf.check_events(player, all_sprites, bullets)   
        score = gf.collisions(score, screen, player, mobs, bullets, ai_settings, all_sprites, meteor_imgs)  
        gf.collisions(score, screen, player, mobs, bullets, ai_settings, all_sprites, meteor_imgs)  
        gf.draw_text(screen, "SCORE: " + str(score) , 20, 0,0, ai_settings)
        gf.draw_text(screen, "LIFE: " + str(player.shield) , 20, 0,20, ai_settings)
        all_sprites.update()        


        pygame.display.flip()


run_game()

我认为循环通过该范围会导致 4 个 Sprite 被垃圾邮件发送。

最佳答案

corazon = Heart() 移至 for 循环内。

关于python - 没有发送适量的 Sprite ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54333180/

相关文章:

python - 制作 pacman 游戏,但不知道如何在碰撞后移除 pac 颗粒

python - 有没有办法在pygame中获取 "screenshot",然后将其保存为 Sprite 以降低代码复杂性?

python - 如何使用 QWebView 显示 html。 Python?

python - 通过 PyXLL 加载 scipy 时出现问题 - 是否有人成功通过 PyXLL 加载 Scipy?

python - 从许多文本文件中快速删除前 n 行

python - 将 pandas Series 作为列添加到 DataFrame 时出现 Wild NaN

python - 马里奥在pygame中跑过屏幕太快

python - Pygame 在点列表中移动?

ruby - 如何创建与帧缓冲区通信的 Ruby 应用程序?

python - 读取串行输入并打印到 Tkinter GUI