老师这个报错是因为什么呢:IndentationError: expected an indented block
# !/user/bin/env python3
# -*- coding: utf-8 -*-
import pygame,time
TEXTCOLOR=pygame.Color(255,0,0)
BG_COLOR=pygame.Color(255,0,0)
FG_COLOR=pygame.Color(0,163,0)
screen_width = 700
screen_height = 400
# 创建主类
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(200, 150)
pygame.display.set_caption('坦克大战 1.0')
while True:
time.sleep(0.02)
MainGame.window.fill(FG_COLOR)
self.getEvent()
MainGame.window.blit(self.Textsurface('敌方坦克剩余数量:%d'%6),(10,10))
# 调用坦克显示方法
MainGame.my_Tank.displayTank()
# 调用移动发发
# 只有坦克的开关是开启,才可以移动
if not MainGame.my_Tank.stop:
MainGame.my_Tank.move()
pygame.display.update()
# 结束方法
def endGame(self):
print('谢谢使用,欢迎下次使用!')
exit()
# 左上角文字的绘制
def Textsurface(self, text):
pygame.font.init()
font=pygame.font.SysFont('kaiti', 18)
# 绘制文字信息
textSurface=font.render(text, True, BG_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_d:
# 切换方向
MainGame.my_Tank.direction='R'
MainGame.my_Tank.stop=False
elif event.key == pygame.K_a:
MainGame.my_Tank.direction = 'L'
MainGame.my_Tank.stop = False
elif event.key == pygame.K_w:
MainGame.my_Tank.direction = 'U'
MainGame.my_Tank.stop = False
elif event.key == pygame.K_s:
MainGame.my_Tank.direction = 'D'
MainGame.my_Tank.stop = False
elif event.key == pygame.K_SPACE:
if event.type == pygame.KEYUP:
MainGame.my_Tank.stop=True
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='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 displayTank(self):
# 获取展示对象
self.image=self.images[self.direction]
MainGame.window.blit(self.image,self.rect)
# 坦克的移动
def move(self):
# 判断坦克的方向来进行移动
if self.direction=='L':
if self.rect.left > 0:
self.rect.left -= self.speed
elif self.direction=='U':
if self.rect.top > 0:
self.rect.top -= self.speed
elif self.direction=='R':
if self.rect.left+self.rect.height<screen_width:
self.rect.left += self.speed
elif self.direction=='D':
if self.rect.top+self.rect.height<screen_height:
self.rect.top += self.speed
if __name__ == '__main__':
MainGame().startGame()