其他分享
首页 > 其他分享> > pygame.draw.rect未起作用(外星人入侵,点击空格子弹没有显示)

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()

标签:draw,bullet,screen,未起,pygame,屏幕,self,rect
来源: https://blog.csdn.net/LCGGood/article/details/115263147