'''坦克大战游戏开发'''
# 导入pygame模块
import pygame
SCREEN_WIDTH=700
SCREEN_HEIGHT=500
BG_COLOR=pygame.Color(255,255,255)
TEXT_COLOR=pygame.Color(255,0,0)
class MainGame():
def __init__(self):
pass
# 开始游戏
def startGame(self):
# 加载主窗口
# 初始化窗口
pygame.display.init()
# 设置窗口大小及展示
MainGame.window=pygame.display.set_mode([SCREEN_WIDTH,SCREEN_HEIGHT])
# 初始化我方坦克
MainGame.window=Tank(350,250)
# 设置窗口标题
pygame.display.set_caption('坦克大战2.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 getEvent(self):
# 获取所有事件
eventList = pygame.event.get()
# 遍历事件
for event in eventList:
# 判断按下的键是关闭还是键盘按下
# 如果按的是退出,关闭窗口
if event.type == pygame.QUIT:
self.endGame()
# 如果是键盘的按下
if event.type == pygame.KEYDOWN:
# 判断按下的是上、是下、左、右
if event.type == pygame.K_LEFT:
print("按下左键,坦克向左移动")
elif event.type == pygame.K_RIGHT:
print("按下右键,坦克向右移动")
elif event.type == pygame.K_UP:
print("按下上键,坦克向上移动")
elif event.type == pygame.K_DOWN:
print("按下下键,坦克向下移动")
class Tank():
# 添加距离左边left,距离上边top
def __init__(self,left,top):
self.images={'U',pygame.load('../images/T.png'),
'D',pygame.load('../images/D.png'),
'L',pygame.load('../images/L.png'),
'R',pygame.load('../images/R.png'),
}
# 方向
self.dirction='U'
# 根据图片的方向获取图片 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]
# 调用blit方法展示
MainGame.window.blit(self.image,self.rect)
# 结束游戏
def endGame(self):
print("THANK YOU! 喜欢您来!")
exit()
# 左上角文字的绘制
def getTextSuface(self):
pygame.font.init()
font=pygame.font.SysFont('kaiti',18)
# 绘制文字信息
font.render(text,True,TEXT_COLOR)
if __name__=='__main__':
MainGame().startGame()
老师,改了半天还是不知道问题出在了哪里,