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

  • 5
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值