my_game.py
3.72 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
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
self.score=1
score=0
y=400
class Block2(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时钟,控制游戏速度(帧数)
zaw_list=pygame.sprite.Group()
# 载入图片
font=pygame.font.Font('STKAITI.ttf',18)
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') # 灌木丛
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
pygame.display.set_caption('悟空酷跑')
a=0
t=30
zaw=Block(stone,cacti,apple)
wukong_1=Block2(hero[0])
wukong='running'
#z=random.choice([stone,cacti,apple])
#rect=stone.get_rect()
#z_x=1000
time=0
road_x=0
bg_x=0
gameover=False
while True:
for event in pygame.event.get():
if event.type == locals.QUIT:
# 接收到退出事件后退出程序
exit()
if event.type==locals.KEYDOWN:
if event.key==locals.K_SPACE and wukong=='running':
wukong='up'
if gameover==False:
if wukong=='running':
wukong_1=Block2(hero[a])
a+=1
if a>=5:
a=0
if wukong=='up':
if t>0:
y-=t
wukong_1.rect.y=y
t-=2
else:
wukong='down'
if wukong=='down':
if t<=30:
y+=t
wukong_1.rect.y=y
t+=2
else:
wukong='running'
t=30
#y=400
# 将背景图画上去
screen.blit(background, (bg_x, 0))
screen.blit(road, (road_x, 500))
screen.blit(wukong_1.image, (150, y))
#z_x-=8
text=font.render('分数:'+str(score),True,(255,255,255))
screen.blit(text,(900,50))
road_x-=10
bg_x-=1
#if zaw.rect.x<= 0-zaw.rect.width:
time+=1
if time>=60:
time=0
num=random.randint(0,50)
if num>20:
zaw=Block(stone,cacti,apple)
zaw_list.add(zaw)
for i in zaw_list:
i.rect.x-=10
screen.blit(i.image, (i.rect.x, 500-i.rect.height))
if i.rect.x<=0-i.rect.width:
i.kill()
if pygame.sprite.collide_rect(wukong_1,i):
gmover=pygame.image.load('gameover.png')
screen.blit(gmover,(400,250))
gameover=True
else:
if i.rect.x<wukong_1.rect.x:
score+=i.score
i.score=0
#z=random.choice([stone,cacti,apple])
#rect=stone.get_rect()
#z_x=1000
if road_x<-1000:
road_x=0
if bg_x<-1000:
bg_x=0
# 刷新画面
pygame.display.update()
FPS.tick(60)