《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()
这样,子弹就可以移动了,嘻嘻(若有帮助,就关注我吧,对我以此鼓励)