老师 为啥坦克和绘制文字部分显示不了 我对了好几遍代码都还找不到问题在哪
import pygame
SCREEN_WIDTH=700#屏幕高度
SCREEN_HEIGHT=500#屏幕宽度
BG_CLOLOR=pygame.Color(0,0,0)
TEXT_COLOR=pygame.Color(255,0,0)
class Mygame():#开始游戏类
window=None
my_tank=None
def __init__(self):
pass
def starGame(self):#开始游戏方法
pygame.display.init()#初始化窗口
Mygame.window=pygame.display.set_mode([SCREEN_WIDTH,SCREEN_HEIGHT])#设置窗口的大小及显示
pygame.display.set_caption('坦克大战1.03')
#初始化坦克
Mygame.my_tank=Tank(350,250)
while True:
Mygame.window.fill(BG_CLOLOR)
pygame.display.update()#游戏窗口一直显示方法
self.getEvent()#调用获取事件方法
Mygame.window.blit(self.getText('敌方坦克剩余数量%d' % 6), (10, 10))
Mygame.my_tank.displayTank()
def endGame(self):#结束游戏方法
print('谢谢使用 ')
exit()
#新增功能 左上角文字的绘制
def getText(self,text):
pygame.font.init()#初始化字体模块
#print(pygame.font.get_fonts())#获取当前可用的字体
font=pygame.font.SysFont('kaiti',18)#获取字体font对象
#绘制文字信息
textSurface=font.render(text,True,TEXT_COLOR)
return textSurface
def getEvent(self):
eventList=pygame.event.get()#获取所以事件赋给evenList对象
for event in eventList:#for循环事件
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():#坦克类
#添加距离左边left 距离上边top
def __init__(self,left,top):
#保存加载的图片
self.images={
'U':pygame.image.load('img/p1tankU.gif'),
'D':pygame.image.load('img/p1tankD.gif'),
'L':pygame.image.load('img/p1tankL.gif'),
'R':pygame.image.load('img/p1tankR.gif'),
}
#方向
self.direction = 'L'
# 根据当前图片的方向获取图片 surface
self.image = self.images[self.direction]
# 根据图片获取区域
self.rect = self.image.get_rect()
# 设置区域的left 和top
self.rect.left = left
self.rect.top = top
def move(self):#坦克移动方法
pass
def shot(self):#射击方法
pass
def displayTank(self):#展示坦克方法
self.image=self.images[self.direction]#获取展示的对象
Mygame.window.blit(self.image,self.rect)#调用bilt方法展示
class MyTank(Tank):#我方坦克类 继承坦克类
def __init__(self):
pass
class EnemtTank(Tank):
def __init__(self):
pass
class Bullet():
def __init__(self):
pass
def move(self):
pass
def displayBullt(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 playMusic(self):
pass
if __name__=="__main__":
Mygame().starGame()