老师,我按照视频中老师的讲解所编写的代码,运行后会报错,以下是源代码和错误信息截图,请老师查帮助,谢谢。
一、源代码
''' 新增功能: 左上角文字绘制; 左上角输出敌方坦克的数量6 ''' #导入pygame模块 import pygame SCREEN_WIDTH=700 SCREEN_HEIGHT=500 BG_COLOR=pygame.Color(0,0,0) TEXT_COLOR = pygame.Color(255,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) #获取事件 self.getEvent() # 绘制文字 MainGame.window.blit(self.getTextSuface('敌方剩余坦克数量%d'%6),(10,10)) pygame.display.update() #结束游戏 def endGame(self): print('谢谢使用,欢迎再次使用') exit() # 左上角文字的绘制 def getTextSuface(self,text): # 初始化字体模块 pygame.font.init() # 查看所有的字体 # print(pygame.font.get_fonts()) # 获取字体font对象 font = pygame.font.SysFont('宋体',18) # 绘制文字信息 textSurface = font.render(text,True,TEXT_COLOR) return textSurface #获取事件 def getEvent(self): #获取所有事件 eventList= pygame.event.get() #遍历事件 for event in eventList: #判断按下的键是关闭还是键盘按下 #如果按的是退出,关闭窗口 if event.type == pygame.QUIT: self.endGame() #如果是键盘的按下 if event.type == pygame.KEYDOWN: #判断按下的是上、下、左、右 if event.key == pygame.K_LEFT: print('按下左键,坦克向左移动') elif event.key == pygame.K_RIGHT: print('按下右键,坦克向右移动') elif event.key == pygame.K_UP: print('按下上键,坦克向上移动') elif event.key == pygame.K_DOWN: print('按下左键,坦克向下移动') class Tank(): def __init__(self): pass #移动 def move(self): pass #射击 def shot(self): pass #展示坦克的方法 def displayTank(self): pass #我方坦克 class MyTank(Tank): def __init__(self): pass #敌方坦克 class EnemyTank(Tank): def __init__(self): pass #子弹类 class Bullet(): def __init__(self): pass #移动 def move(self): pass #展示子弹的方法 def displayBullet(self): pass class Wall(): def __init__(self): pass #展示墙壁的方法 def displayWall(self): pass class Explode(): def __init__(self): pass #展示爆炸效果的方法 def displayExplode(self): pass class Music(): def __init__(self): pass #播放音乐 def play(self): pass if __name__=='__main__': # MainGame().getTextSuface() MainGame().startGame()
二、错误截图