pygame.draw.rect未起作用(外星人入侵,点击空格子弹没有显示)

问题描述:

在实现pygame 的外星人入侵小游戏的时候,点击攻击按钮发现子弹并未出现。灵感来源:在查阅问题时,发现有一位网友遇到的问题是绘制的矩形没有显示出来,文章给出的答案是被主屏幕填充时候给覆盖了。

https://www.cnpython.com/qa/485551

    def draw_bullet(self):
        """在屏幕上绘制子弹"""
        pygame.draw.rect(self.screen, self.color, self.rect)

原因分析:在更新主屏幕(填充screen)的时候,将原本应该显示的子弹给覆盖了


解决方案:

应将填充screen放在更新子弹和飞船的前面进行
如:

    def update_screen(ai_settings, screen, ship, bullets):
    """"更新屏幕上的图像,并切换到新屏幕"""
    # 每次循环都重新绘制屏幕
    screen.fill(ai_settings.bg_color)
    for bullet in bullets.sprites():
        bullet.draw_bullet()
    ship.blitme()
    # 让最近绘制的屏幕可见
    pygame.display.flip()

上一篇:【软件工程】软件工程


下一篇:手把手讲解超详细python入门游戏项目‘打外星飞船’(四)