import pygame
SCREEN_WIDTH=700
SCREEN_HEIGHT=500
BG_COLOR=pygame.Color(0,0,0)
TEXT_COLOR=pygame.Color(255,0,0)
class MyGame():
window=None
MyTank=None
def __init__(self):
pass
# 开始游戏
def startGame(self):
#加载主窗口
#初始化主窗口
pygame.display.init()
#设置窗口大小及常量
MyGame.window=pygame.display.set_mode([SCREEN_WIDTH,SCREEN_HEIGHT])
#初始化我方坦克
MyGame.MyTank=Tank(350,250)
#设置标题
pygame.display.set_caption('坦克大战1.03')
while True:
#给窗口设置填充色
MyGame.window.fill(BG_COLOR)
self.get_Event()
#调用绘制文字方法
MyGame.window.blit(self.getTextSuface("敌方坦克剩余数量%d"%6),(10,10))
#调用坦克的显示方法
MyGame.MyTank.displayTank()
pygame.display.update()
#结束游戏
def endGame(self):
print("结束,欢下再来")
exit()
#绘制左上角文字
def getTextSuface(self,text):
#查看搜有字体的名称
#print(pygame.font.get_fonts())
#初始化字体模块
pygame.font.init()
#或缺字体的方法
font=pygame.font.SysFont('kaiti',18)
#绘制文字信息
textSurface=font.render(text,True,TEXT_COLOR)
return textSurface
#获取事件
def get_Event(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,left,top):
#添加距离左边left,距离上边top
#保存加载的图片
self.imangs={'U':pygame.image.load('D:\python_env/venv/p1tankU.gif'),
'D': pygame.image.load('D:\python_env/venv/p1tankD.gif'),
'L':pygame.image.load('D:\python_env/venv/p1tankL.gif'),
'R':pygame.image.load('D:\python_env/venv/p1tankR.gif')}
#方向
self.direction='U'
#根据当前图片方向获取图片
self.imang=self.imangs[self.direction]
#根据图片获取区域
self.rect=self.imang.get_rect()
#设置区域的left和top
self.rect.left=left
self.rect.top=top
pass
#移动
def moveTank(self):
pass
#射击
def sheji(self):
pass
#坦克显示的方法
def displayTank(self):
#获取展示的对象
self.imang=self.imangs(self.direction)
#使用blit方法展示
MyGame.window.blit(self.imang,self.rect)
pass
#我方坦克
class MyTank(Tank):
def __init__(self):
pass
#敌方坦克
class DifangTank(Tank):
pass
class ZiDan():
def __init__(self):
pass
#移动
def moveZiDan(self):
pass
#子弹显示
def displayZiDan(self):
pass
class Qiangbi():
def __init__(self):
pass
#显示墙壁
def displayQiangbi(self):
pass
class Baozha():
def __init__(self):
pass
#爆炸效果
def XiaogouDaozha(self):
pass
class Music():
def __init__(self):
pass
#播放音乐
def play(self):
pass
if __name__=='__main__':
MyGame().startGame()
MyGame().getTextSuface()
我这个第132,30,100,行会报错是怎么回事呢