如何运行这个滑雪小游戏?python3.9.5

#滑雪者类
import pygame
from pygame.locals import *
class SkierClass(pygame.sprite.Sprite):
	def __init__(self):
		pygame.sprite.Sprite.__init__(self)
		#滑雪者朝向(-2到2)
		self.diretion = 0
		self.imgs = [",/images/skier_crash.png",",/images/skier_right1.png",",images/skier_right2.png",",images/skier_left2.png",",images/skier_left1.png"]
		self.person = pygame.image.load(self.imgs[self.direction])
		self.rect = self.person.get_rect()
		self.rect.center = [320,100]
		self.speed = [self.direction,6+abs(self.direction)*2]
	 #改变滑雪者朝向
	 #负数向左,正数向右,θ向前
		def turn(self,num):
		 self.direction += num
		 self.direction = max(-2,self,direction)
		 self.direction = min(2,self,direction)
		 center = self.rect.center
		 self.person = pygame.image.load(self.imgs[self.direction])
		 self.rect = self.person.get_rect()
		 self.rect.center = center
		 self.speed = [self.direction,6+abs(self.direction)*2]
		 return self.speed

	def move(self):
		  self.rect.centerx += self.speed[θ]
		  self.rect.centerx = max('2θ,self.rect.centerx')
		  self.rect.centerx = min('62θ,self.rect.centerx')

		  IndentationError: unindent
		  does
		  not match
		  any
		  outer
		  indentation
		  level
#障碍物类
#Input:
#	-img_path:障碍物图片路径
#	-location:障碍物位置
#	-attribute:障碍物类别属性
class ObstacleClass(pygame.sprite.Sprite):
	def __init__(self,img_path,location,attribute):
		pygame.sprite.Sprite.__init__(self)
		self.img_path = img_path
		self.image = pygame.image.load(self.img_path)
		self.location = location
		self.recθt = self.image.get_rect()
		self.rect.center = self.location
		self.attribute = attribute
		self.passed = False
	#移动
	def move(self,num):
		 self.rect.centery = self.location[1] - num
	#创建障碍物
	def create_obstacles(s,e,num=10):
		 obstacles = pygame.sprite.Group()
		 location = []
		 for i in range(num):
			 row = random.randint(s,e)
			 col = random.randint(0,9)
			 location = [col*64+20,row*64+20]
			 if location not in locations:
				 locations.append(location)
				 attribute = random.choice(["tree","flag"])
				 img_path = './images/tree.png' if attribute=="tree" else '.images/skier_flag.png'
				 obstacle = ObstacleClass(img_path,location,attribute)
				 obstacles.add(obstacle)
		 return obstacles


		 pygame.init()
		 #屏幕
		 screen = pygame.display.set_mode([640,640])
		 #主频
		 clock = pygame.time.Clock()
		 #滑雪者
		 skier = SkierClass()
		 #记录滑雪距离
		 distance = 0
		 #创建障碍物
		 obstacles0 = create_obstacles(20,29)
		 obstacles1 = create_obstacles(10,19)
		 obstacles = AddObstacles(obstacles0,obstacles1)
		 # 分数
		 font = pygame.font.Font(None,50)
		 score = 0
		 score_text = font.render("Score:"+str(score),(0,0,0))
		 # 速度
		 speed = [0,6]



		 while True:
			 #左右键人物控制
			 for event in pygame.event.get():
				 if event.type == pygame.QUIT:
					 sys.exit()
				 if event.type == pygame.KEYDOWN:
					 if event.key == pygame.K_LEFT or event.key == pygame.K_a:
						 speed = skier.turn(-1)
					 elif event.key == pygame.K_RIGHT or event.key == pygame.K_d:
						 speed = skier.turn(1)
			 skier.move()
			 distance += speed[1]
			 if distance >= 640 and obstaclesflag == 0:
				 obstaclesflag = 1
				 obstacles0 = create_obstacles(20, 29)
				 obstacles = AddObstacles(obstacles0, obstacles1)
			 if distance >= 1280 and obstaclesflag == 1:
				 pobstaclesflag = 0
				 distance += 1280
				 for obstacle in obstacles0:
					 obstacle.location[1] = obstacle.location[1] - 1280
				 obstacles1 = create_obstacles(10, 19)
				 obstacles = AddObstacles(obstacles0, obstacles1)
			   #用于碰撞检测
				 for obstacle in obstacles:
					 obstacle.move(distance)
				 # 碰撞检测
				 is_hit = pygame.sprite.spritecollide(skier, obstacles, False)
				 if is_hit:
					 if is_hit[0].attribute == "tree" and not is_hit[0].passed:
						 score += 50
						 skier.person = pygame.image.load("./images/skier_down.png")
						 update()
					   #摔倒后暂停一会再站起来
						 pygame.time.delay(1000)
						 skier.person = pygame.image.load("./images/skier_crash.png")
						 skier.direction = 0
						 speed = [0, 6]
						 is_hit[0].passed = True
					 elif is_hit[0].attribute == "flag" and not is_hit[0].passed:
						 score += 10
						 obstacles.remove(is_hit[0])
				 score_text = font.render("Score:" +str(score),1,(0,0,0))
				 update()
				 clock.tick(40)
	#创建障碍物
	def show_Start_Interface(Demo,width,height):
		Demo.fill((255,255,255))
		tfont = pygame.font.Font('./font/simkai.ttf',width//4)
		cfont = pygame.font.Font('./font/simkai.ttf',width//20)
		title = tfont.render('滑雪游戏',True,(255,0,0))
		content = cfont.render('按任意键开始游戏',True,(0,0,255))
		trect = title.get_rect()
		trect.midtop = (width/2,height/10)
		crect = content.get_rect()
		crect.midtop = (width/2,height/2.2)
		Demo.blit(title,trect)
		Demo.blit(content,crect)
		pygame.display.update()
		while True:
			for event in pygame.event.get():
				if event.type == QUIT:
					sys.exit()
				elif event.type == pygame.KEYDOWN:
					return

 

找到这个.py文件双击啊