我没有写war模块 ,主程序在main里面写的,我在飞机类引入status,然后赋值为2,结果main里面status还是1,一直在循环,碰撞检测之类的都运行成功了,就是status值没有改变;还有我在update()里面print(status)打印出来是2,在main里面打印出来的是1,
这是main里面的代码
# 更新游戏状态
if status == constants.READY:
# 绘制
screen.blit(bg, bg.get_rect())
screen.blit(img_game_title, img_game_title_rect)
screen.blit(btn_start, btn_start_rect)
elif status == constants.PLAYING:
screen.blit(bg, bg.get_rect())
our_plane.update(frame,enemies,small_enemies,status)
our_plane.bullets.update(enemies)
small_enemies.update()
print(status)
这是我方飞机类
class OurPlane(Plane):
"""我方飞机"""
# 飞机的图片
plane_images = [constants.OUR_PLANE_IMG_1, constants.OUR_PLANE_IMG_2]
# 飞机爆炸图片
destroy_images = constants.OUR_DESTROY_IMG_LIST
# 坠毁的音乐地址
down_sound_src = constants.OUR_PLANE_DESTROY_SOUND_1
def update(self, frame, enemies,small_enemies,status):
if frame % 5:
self.screen.blit(self.img_list[0], self.rect)
else:
self.screen.blit(self.img_list[1], self.rect)
rest = pygame.sprite.spritecollide(self, enemies, False)
if rest:
status = constants.GAME_OVER
enemies.empty()
small_enemies.empty()
self.broken_down()
return status
2020-02-17 14:20:59
同学,你好。同学是在status == constants.PLAYING代码中打印的status值,该代码下为游戏进行中时执行的语句。同学缺少当status =constans.OVER时的代码,当游戏结束重新绘制游戏背景,即之前回答中提供的截图。祝学习愉快~~~~
2020-02-17 19:23:39
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星