From b4861cc0cdbba1eaa8072acb15fa783b6912a19a Mon Sep 17 00:00:00 2001
From: BellCodeEditor <bellcode_dev@bell.ai>
Date: Sat, 3 Jun 2023 10:13:30 +0800
Subject: [PATCH] save project

---
 my_game.py | 95 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++----------------------------------
 1 file changed, 61 insertions(+), 34 deletions(-)

diff --git a/my_game.py b/my_game.py
index e8f8329..89a870f 100644
--- a/my_game.py
+++ b/my_game.py
@@ -4,6 +4,15 @@ import random
 
 pygame.init()  # 初始化
 # 创建一个窗口
+
+class Bloak(pygame.sprite.Sprite):
+    def __init__(self,image1,image2,image3):
+        super().__init__()
+        self.image = random.choice([image1,image2,image3])
+        self.rect = self.image.get_rect()
+        self.rect.x = 1000
+        self.rect.y = 500 - self.rect.height
+
 screen = pygame.display.set_mode((1000, 600))
 FPS = pygame.time.Clock()  # pygame时钟,控制游戏速度(帧数)
 pygame.display.set_caption("悟空酷跑")
@@ -12,20 +21,22 @@ background = pygame.image.load('bg.png')    # 背景
 road = pygame.image.load('road.png')      # 路
 stone = pygame.image.load('stone.png')      # 石头
 cacti = pygame.image.load('cacti.png')      # 仙人掌
-apple = pygame.image.load('bush.png')      # 灌木丛
+bush = pygame.image.load('bush.png')      # 灌木丛
 hero = [pygame.image.load('hero1.png'),
         pygame.image.load('hero2.png'),
         pygame.image.load('hero3.png'),
         pygame.image.load('hero4.png'),
         pygame.image.load('hero5.png')]
-index = 0 
-y=400
+index = 0   
+y = 400
 jumpState = "runing"
-t=30
-obstacle = random.choice([bush,stone,cacti])
-rect = obstacle.get_rect()
-rect.x=1000
-rect.y=500-rect.height
+t = 30
+road_x = 0
+bg_x=0
+time = 0
+
+
+block_list=pygame.sprite.Group()
 
 while True:
     for event in pygame.event.get():
@@ -33,41 +44,57 @@ while True:
             # 接收到退出事件后退出程序
             exit()
         if event.type == locals.KEYDOWN:
-            if jumpState=="runing":
+            if jumpState == "runing":
                 if event.key == locals.K_SPACE:
                     jumpState = "up"
-    if jumpState =="up":
-        if t >=0:
-            y-=t
-            t-=2
+
+    if jumpState == "up":    # 起跳状态
+        if t > 0:
+            y -= t
+            t -= 2
         else:
-            jumpState="down"
-    if jumpState =="down":
+            jumpState = "down"  
+    if jumpState == "down":    # 降落状态
         if t <= 30:
-            y+=t
-            t+=2
+            y += t
+            t += 2
         else:
-            jumpState="runing"
-            t=30
-
-    wukong=hero[index]
-    if jumpState=="runing":
+            jumpState = "runing"
+            t =30
+    
+    # 悟空造型
+    wukong = hero[index]
+    if jumpState == "runing":       # 跑步状态下
         index += 1
-        if index >=5:
-            index=0
+        if index >= 5:
+            index = 0
     # 将背景图画上去
-    screen.blit(background, (0, 0))
-    screen.blit(road, (0, 500))
-    screen.blit(wukong, (150, y))
-    if rect.x <=0-rect.width:
-        obstacle = random.choice([bush,stone,cacti])
-        rect = obstacle.get_rect()
-        rect.x=1000
-        rect.y=500-rect.height
-    screen.blit(obstacle, (rect.x,rect.y))
+    bg_x -=1
+    if bg_x <= -1000:
+        bg_x = 0
+    screen.blit(background, (bg_x, 0))
+    road_x -= 8
+    if road_x <= -1000:
+        road_x=0     # 远处背景
+    screen.blit(road, (road_x, 500))     # 路
+    screen.blit(wukong, (150, y))     # 悟空
+
    
     
+    
+    time += 1
+    if time >=60:
+        time = 0
+        num=random.randint(0,50)
+        if num > 20:
+            obstacle=Block(bush,cacti,stone)
+            block_list.add(obstacle)
+    for sprite in block_list:
+        sprite.rect.x -= 8
+        screen.blit(obstacle.image, (obstacle.rect.x, obstacle.rect.y))
+        if sprite.rect.x <= 0-sprite.rect.width:
+            sprite.kill()
 
     # 刷新画面
     pygame.display.update()
-    FPS.tick(60)
\ No newline at end of file
+    FPS.tick(30)
\ No newline at end of file
--
libgit2 0.25.0