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