From 936f2083f1bfc2971ae2e666e37a1373c54e1685 Mon Sep 17 00:00:00 2001 From: BellCodeEditor <bellcode_dev@bell.ai> Date: Sat, 8 Jan 2022 15:15:00 +0800 Subject: [PATCH] save project --- my_game.py | 128 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 127 insertions(+), 1 deletion(-) diff --git a/my_game.py b/my_game.py index 1eb1586..bbdec8a 100644 --- a/my_game.py +++ b/my_game.py @@ -1 +1,127 @@ -pygame.image.load('hero5.png') \ No newline at end of file +import pygame +from pygame import locals +import random + +pygame.init() # 初始化 + +class Block(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 + +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 + +# 创建一个窗口 +screen = pygame.display.set_mode((1000, 600)) +FPS = pygame.time.Clock() # pygame时钟,控制游戏速度(帧数) +pygame.display.set_caption("悟空酷跑") +# 载入图片 +background = pygame.image.load('bg.png') # 背景 +road = pygame.image.load('road.png') # 路 +stone = pygame.image.load('stone.png') # 石头 +cacti = pygame.image.load('cacti.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 +jumpState = "runing" +t = 30 + +bg_x = 0 +road_x = 0 +time = 0 + +# obstacle = Block(bush,cacti,stone) +block_list =pygame.sprite.Group() + +gamestate=True + +while True: + for event in pygame.event.get(): + if event.type == locals.QUIT: + # 接收到退出事件后退出程序 + exit() + if event.type == locals.KEYDOWN: + if jumpState == "runing": + if event.key == locals.K_SPACE: + jumpState = "up" + # 悟空造型 + wukong = Player(hero[index]) + if jumpState == "runing": # 跑步状态下 + index += 1 + if index >= 5: + index = 0 + + 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 + + + # 将背景图画上去 + 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.image, (150, y)) # 悟空 + + # 绘制障碍物 + # if obstacle.rect.x <= 0-obstacle.rect.width: + # obstacle = Block(bush,cacti,stone) + # obstacle.rect.x -= 8 + # obstacle.draw() + # +++++++++++++++++++++++++++++++++++++++ + # 创建障碍物对象 + time += 1 + if time >= 60: + r = random.randint(0, 100) + if r > 40: + obstacle = Block(bush,cacti,stone) + block_list.add(obstacle) + time = 0 + # 遍历障碍物并展示 + 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 + # print(len(block_list)) + # 刷新画面 + pygame.display.update() + FPS.tick(60) \ No newline at end of file -- libgit2 0.25.0