From bc0c4549dcdff44816f2ee51c1e2ecf7b46b24e1 Mon Sep 17 00:00:00 2001 From: BellCodeEditor <bellcode_dev@bell.ai> Date: Sat, 13 Jan 2024 16:31:13 +0800 Subject: [PATCH] save project --- my_game.py | 100 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------------------------------- 1 file changed, 68 insertions(+), 32 deletions(-) diff --git a/my_game.py b/my_game.py index 80e84ff..1e71c96 100644 --- a/my_game.py +++ b/my_game.py @@ -13,6 +13,7 @@ road = pygame.image.load('road.png') # 路 stone = pygame.image.load('stone.png') # 石头 cacti = pygame.image.load('cacti.png') # 仙人掌 bush = pygame.image.load('bush.png') # 灌木丛 +font=pygame.font.Font("STKAITI.TTF",21) hero = [pygame.image.load('hero1.png'), pygame.image.load('hero2.png'), pygame.image.load('hero3.png'), @@ -29,11 +30,24 @@ class Block(pygame.sprite.Sprite): self.rect=self.image.get_rect() self.rect.x=1000 self.rect.y=500-self.rect.height -wote=Block(stone,bush,cacti) + self.score=1 +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 +block_list=pygame.sprite.Group() +time=0 road_x=0 bg_x=0 +c=True +score=0 +speed=8 while True: + speed=8+score//3 for event in pygame.event.get(): if event.type == locals.QUIT: # 接收到退出事件后退出程序 @@ -42,38 +56,60 @@ while True: if jump=="runing": if event.key==locals.K_SPACE: jump="up" - if jump=="up": - if t>0: - y-=t - t-=2 - else: - jump="down" - if jump=="down": - if t<=30: - y+=t - t+=2 - else: - jump="runing" - t=30 - # 将背景图画上去 - wukong=hero[index] + wukong=Player(hero[index]) if jump=="runing": index+=1 if index>len(hero)-1: index=0 - bg_x-=2 - 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)) - if wote.rect.x<=0-wote.rect.width: - wote=Block(stone,bush,cacti) - wote.rect.x-=8 - screen.blit(wote.image,(wote.rect.x,wote.rect.y)) - # 刷新画面 - pygame.display.update() - FPS.tick(58) \ No newline at end of file + if c==True: + if jump=="up": + if t>0: + y-=t + wukong.rect.y=y + t-=2 + else: + jump="down" + if jump=="down": + if t<=30: + y+=t + wukong.rect.y=y + t+=2 + else: + jump="runing" + t=30 + # 将背景图画上去 + bg_x-=2 + if bg_x<=-1000: + bg_x=0 + screen.blit(background, (bg_x, 0)) + road_x-=speed + if road_x<=-1000: + road_x=0 + screen.blit(road, (road_x, 500)) + screen.blit(wukong.image,(150,y)) + time+=1 + if time>=60: + time=0 + num=random.randint(0,50) + if num>20: + b=Block(bush,cacti,stone) + block_list.add(b) + for sprite in block_list: + sprite.rect.x-=speed + 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)) + c=False + else: + if sprite.rect.x+sprite.rect.width<wukong.rect.x: + score+=sprite.score + sprite.score=0 + info="游戏分数:"+str(score) + text=font.render(info,True,(255,255,255)) + screen.blit(text,(880,20)) + # 刷新画面 + pygame.display.update() + FPS.tick(60) \ No newline at end of file -- libgit2 0.25.0