diff --git a/my_game.py b/my_game.py
index cffc540..c736281 100644
--- a/my_game.py
+++ b/my_game.py
@@ -9,6 +9,14 @@ class Block(pygame.sprite.Sprite):
         self.rect=self.image.get_rect()
         self.rect.x=1000
         self.rect.y=500-self.rect.height
+
+class Player(pygame.sprite.Sprite):
+    def __init__(self,image):
+        super().__init__()
+        self.image=image
+        self.rect=self.image.get_rect() 
+        self.rect.x=150
+        self.rect.y=400
 pygame.init()  # 初始化
 # 创建一个窗口
 screen = pygame.display.set_mode((1000, 600))
@@ -32,6 +40,8 @@ y = 400
 jumpState = "runing"
 t = 30
 time=0
+gamestate=True
+
 block_list=pygame.sprite.Group()
 while True:
     for event in pygame.event.get():
@@ -43,49 +53,58 @@ while True:
                 if event.key == locals.K_SPACE:
                     jumpState = "up"
 
-    if jumpState == "up":    # 起跳状态
-        if t > 0:
-            y -= t
-            t -= 2
-        else:
-            jumpState = "down"  
-    if jumpState == "down":    # 降落状态
-        if t <= 30:
-            y += t
-            t += 2
-        else:
-            jumpState = "runing"
-            t =30
-    
     # 悟空造型
-    wukong = hero[index]
+    wukong =Player(hero[index])
     if jumpState == "runing":       # 跑步状态下
         index += 1
         if index >= 5:
             index = 0
-    # 将背景图画上去
-    shan_x -=2
-    if shan_x <-1000:
-        shan_x=0
-    screen.blit(background, (shan_x, 0))     # 远处背景
-    lu_x -=8
-    if lu_x <-1000:
-        lu_x=0
-    screen.blit(road, (lu_x, 500))     # 路
-    screen.blit(wukong, (150, y))     # 悟空
+            
+    if gamestate==True:
+        if jumpState == "up":    # 起跳状态
+            if t > 0:
+                y -= t
+                wukong.rect.y=y
+                t -= 2
+            else:
+                jumpState = "down"  
+        if jumpState == "down":    # 降落状态
+            if t <= 30:
+                y += t
+                wukong.rect.y=y
+                t += 2
+            else:
+                jumpState = "runing"
+                t =30
+        
+ 
+        # 将背景图画上去
+        shan_x -=2
+        if shan_x <-1000:
+            shan_x=0
+        screen.blit(background, (shan_x, 0))     # 远处背景
+        lu_x -=8
+        if lu_x <-1000:
+            lu_x=0
+        screen.blit(road, (lu_x, 500))     # 路
+        screen.blit(wukong.image, (150, y))     # 悟空
 
-    time+=1
-    if time>=60:
-        time=0
-        num=random.randint(0,50)
-        if num>20:
-            aa=Block(bush,cacti,stone)
-            block_list.add(aa)
-    for sprite in block_list:
-        sprite.rect.x-=8
-        screen.blit(sprite.image, (sprite.rect.x, sprite.rect.y))
-        if sprite.rect.x<=0-sprite.rect.width:
-            sprite.kill()
-    # 刷新画面
-    pygame.display.update()
-    FPS.tick(60)
\ No newline at end of file
+        time+=1
+        if time>=60:
+            time=0
+            num=random.randint(0,50)
+            if num>20:
+                aa=Block(bush,cacti,stone)
+                block_list.add(aa)
+        for sprite in block_list:
+            sprite.rect.x-=8
+            screen.blit(sprite.image, (sprite.rect.x, sprite.rect.y))
+            if sprite.rect.x<=0-sprite.rect.width:
+                sprite.kill()
+            if pygame.sprite.collide_rect(wukong,sprite):
+                gameover=pygame.image.load('gameover.png')
+                screen.blit(gameover,(400,200))
+                gamestate=False
+        # 刷新画面
+        pygame.display.update()
+        FPS.tick(60)
\ No newline at end of file