status无法更改,我方飞机爆炸后,敌机清空,屏幕只有我方飞机飞行的动画,程序不终止

status无法更改,我方飞机爆炸后,敌机清空,屏幕只有我方飞机飞行的动画,程序不终止

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

2回答
eric_feng 2020-02-19 22:18:48
好帮手慕美 2020-02-17 13:47:11

同学,你好。同学可以打印下status的值,并看下当status=2时相应的代码是否正确。

http://img1.sycdn.imooc.com//climg/5e4a283409309fda04870100.jpg

如果我的回答解决了您的疑惑,请采纳!祝学习愉快~~~~

  • 提问者 慕码人8307624 #1
    我没有写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
  • 好帮手慕美 回复 提问者 慕码人8307624 #2
    同学,你好。同学是在status == constants.PLAYING代码中打印的status值,该代码下为游戏进行中时执行的语句。同学缺少当status =constans.OVER时的代码,当游戏结束重新绘制游戏背景,即之前回答中提供的截图。祝学习愉快~~~~
    2020-02-17 19:23:39
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
1.Python零基础入门
  • 参与学习           人
  • 提交作业       2727    份
  • 解答问题       8160    个

想要进入Python Web、爬虫、人工智能等高薪领域,你需要掌握本阶段的Python基础知识,课程安排带你高效学习轻松入门,学完你也能听得懂Python工程师的行业梗。

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师