外星人入侵游戏python学习心得——子弹不动

《python从入门到实践》
书中的第一个项目——外星人入侵(Alien Invasion),书中的代码有一些细微的问题,在学习过程中,按照书中的代码敲写出现了一些问题。

一.问题描述:

书中代码如下***(在game_functions.py文件中):***
()在这里插入图片描述
在学习过程中出现了子弹可以显示,但无法移动的现象。前面的***bullet.py***文件中已经定义了子弹移动函数(书中代码如下):
在这里插入图片描述
之所以子弹无法移动,是因为在***game_functions.py***文件中的如下部分:
在这里插入图片描述
并没有调用***bullet.py***中的子弹移动函数***def update(self)?**(即没有使用子弹移动这个共功能,你根本没要求它动)

二.解决办法

故***game_functions.py***文件中的***def update_screen(ai_settings,screen,ship,bullets)?**正确代码应该为:

def update_screen(ai_setting, screen, ship, bullets):
    """更新屏幕的图像,切换到屏幕"""
    # 每次循环更新屏幕
    screen.fill(ai_setting.bg_color)

    # 在飞船和外星人后面重绘制所有子弹
    for bullet in bullets.sprites():
        bullet.draw_bullet() # 子弹绘制
        bullet.update_bullet() # 子弹移动
        
    ship.blitme()
    # 让最近的图像可见
    pygame.display.flip()

这样,子弹就可以移动了,嘻嘻(若有帮助,就关注我吧,对我以此鼓励)

评论 16
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值