Python_huangjiaw 2022-03-11 22:42 采纳率: 93.3%
浏览 15
已结题

pygame坦克大作战游戏开发,刚开始增加退出事件,为什么还是退不出?

问题遇到的现象和发生背景
问题相关代码,请勿粘贴截图
'''坦克游戏开发
新增功能:'''

import pygame
SCREEN_HEIGHT=500
SCREEN_WIDTH=800
BG_COLOR=pygame.Color(0,0,0)

class MainGame():
    """主类"""
    #游戏主窗口
    window=None


    def __init__(self):
        pass

    # 开始游戏方法
    def startGame(self):
        # 加载主窗口
        #初始化窗口
        pygame.display.init()
        #设置窗口大小和显示

        MainGame.window=pygame.display.set_mode([SCREEN_WIDTH,SCREEN_HEIGHT])

        #设置游戏标题
        pygame.display.set_caption('坦克大作战1.03')

        #让窗口持续刷新操作
        while True:
            #窗口填充色
            MainGame.window.fill(BG_COLOR)
            pygame.display.update()
            #获取事件
            self.getEvent()
    # 结束游戏
    def endGame(self):
        print('谢谢使用,欢迎下次在使用')
        exit()

    def getEvent(self):
        #获取所有事件
        eventList=pygame.event.get()
        #遍历事件
        for event in eventList:
            #判断按下的是什么键,如果是退出,则推出
            if event==pygame.QUIT:
                self.endGame()


class Tank():
    """坦克类"""
    def __init__(self):
        pass

    # 坦克的移动方法
    def move(self):
        pass

    # 碰撞墙壁的方法
    def hitWall(self):
        pass

    # 射击方法
    def shot(self):
        pass

    # 展示坦克
    def displayTank(self):
        pass


class MyTank(Tank):
    """我方坦克类"""
    def __init__(self):
        pass

    # 碰撞敌方坦克方法
    def hitEnemyTank(self):
        pass

class EnemyTank(Tank):
    """敌方坦克类"""
    def __init__(self):
        pass

    # 撞击我方坦克
    def hitMyTank(self):
        pass

class Bullet():
    """子弹类"""
    def __init__(self):
        pass

    # 子弹移动方法
    def bulletMove(self):
        pass

    # 展示子弹方法
    def displayBullet(self):
        pass

    # 我方子弹碰撞敌方坦克方法
    def hitEnemyTank(self):
        pass

    # 敌方子弹碰撞我方坦克方法
    def hitMyTank(self):
        pass

    # 子弹碰撞墙壁方法
    def hitWall(self):
        pass


class Wall():
    """墙壁类"""
    def __init__(self):
        pass

    #展示墙壁的方法
    def displayWall(self):
        pass


class Expode():
    """爆炸效果"""
    def __init__(self):
        pass

    #展示爆炸效果
    def displayExpode(self):
        pass


class Music():
    def __init__(self):
        pass

    #开始播放音乐
    def play(self):
        pass


if __name__=='__main__':
    MainGame().startGame()



运行结果及报错内容

看看为什么运行后点了退出,还是退出不了

我的解答思路和尝试过的方法
我想要达到的结果
  • 写回答

1条回答 默认 最新

  • chuifengde 2022-03-12 08:29
    关注

    event ---->> event.type

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 3月26日
  • 已采纳回答 3月18日
  • 创建了问题 3月11日

悬赏问题

  • ¥170 如图所示配置eNSP
  • ¥20 docker里部署springboot项目,访问不到扬声器
  • ¥15 netty整合springboot之后自动重连失效
  • ¥15 悬赏!微信开发者工具报错,求帮改
  • ¥20 wireshark抓不到vlan
  • ¥20 关于#stm32#的问题:需要指导自动酸碱滴定仪的原理图程序代码及仿真
  • ¥20 设计一款异域新娘的视频相亲软件需要哪些技术支持
  • ¥15 stata安慰剂检验作图但是真实值不出现在图上
  • ¥15 c程序不知道为什么得不到结果
  • ¥15 键盘指令混乱情况下的启动盘系统重装