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日

悬赏问题

  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度
  • ¥30 关于#r语言#的问题:如何对R语言中mfgarch包中构建的garch-midas模型进行样本内长期波动率预测和样本外长期波动率预测
  • ¥15 ETLCloud 处理json多层级问题
  • ¥15 matlab中使用gurobi时报错
  • ¥15 这个主板怎么能扩出一两个sata口
  • ¥15 不是,这到底错哪儿了😭
  • ¥15 2020长安杯与连接网探
  • ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么