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
my_tank=None
def __init__(self):
pass
def startGame(self):#开始游戏
# 加载主窗口,初始化窗口
pygame.display.init()
# 设置窗口的大小及显示
MainGame.window=pygame.display.set_mode([SCREEN_WIDTH,SCREEN_HEIGHT])
#初始化我方坦克
MainGame.my_tank=Tank(350,250)
#设置标题
pygame.display.set_caption('坦克大战1.0')
while True:
#给窗口设置填充色
MainGame.window.fill(BG_COLOR)
self.getEvent()
MainGame.window.blit(self.getTextSuFace('敌方坦克剩余数量%d'%6),(10,10))
MainGame.my_tank.displayTank()
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('kaiti',18)
#绘制文字信息
textSuFace=font.render(text,True,TEXT_COLOR)
return textSuFace
#获取事件
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:
#切换方向
MainGame.my_tank='L'
MainGame.my_tank.move()
print('按下左键,坦克向左移动')
elif event.key==pygame.K_RIGHT:
MainGame.my_tank = 'R'
MainGame.my_tank.move()
print('按下左键,坦克向右移动')
elif event.key == pygame.K_UP:
MainGame.my_tank = 'U'
MainGame.my_tank.move()
print('按下上键,坦克向上移动')
elif event.key == pygame.K_DOWN:
MainGame.my_tank = 'D'
MainGame.my_tank.move()
print('按下下键,坦克向下移动')
class Tank():
#距离左边,上边
def __init__(self,left,top):
#保存加载的图片
self.images={
'U':pygame.image.load('img/p1tankU.gif'),
'D': pygame.image.load('img/p1tankD.gif'),
'R': pygame.image.load('img/p1tankR.gif'),
'L': pygame.image.load('img/p1tankL.gif'),
}
#方向
self.direction='U'
#根据当前图片的方向获取图片
self.image=self.images[self.direction]
#根据图片获取区域
self.rect=self.image.get_rect()
#设置区域
self.rect.left=left
self.rect.top=top
#速度
self.speed=10
def move(self):
#判断方向
if self.direction=='L':
self.rect.left-=self.speed
elif self.direction=='U':
self.rect.top-=self.speed
elif self.direction=='D':
self.rect.top+=self.speed
elif self.direction=='R':
self.rect.left+=self.speed
def shot(self):
pass #射击
def displayTank(self):
#获取展示对象
self.image=self.images[self.direction]
#调用blit方法展示
MainGame.window.blit(self.image,self.rect)
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().startGame()
#MainGame().getTextSuFace()
我
我代码哪里出错了