### 尖锋时刻pygame方块跳跃小游戏

```"""尖锋时刻pygame方块跳跃小游戏,这是用pygame制作的一个小游戏.
小方块只能跳,从屏幕最右边不定时出现一些尖尖的三角形...
"""
__author__ = "李兴球"
__date__ = "2018年7月"

import pygame
from pygame.locals import *
from random import randint

pygame.init()
screen = pygame.display.set_mode((480,360))
pygame.display.set_caption("尖锋时刻方块跳跃小游戏 作者:李兴球")

class Block():
def __init__(self,x,y,width,height,color):
self.image = pygame.Surface((width,height))
self.image.fill(color)
self.rect = self.image.get_rect()
self.rect.x = x
self.rect.y = y
self.yspeed =0
self.delete = 0         #碰到三角形就把它标为1
def move(self):
self.rect.y = self.rect.y  + self.yspeed
if self.rect.y<280:
self.yspeed = self.yspeed + 1
else:
self.yspeed = 0

def jump(self):
self.yspeed = -18

def draw(self):
screen.blit(self.image,self.rect)

class Triangle():
def __init__(self,width,height,color):
self.image = pygame.Surface((width,height))
self.image.set_colorkey((0,0,0))
pointlist = [(width//2,0),(0,height),(width,height)]
pygame.draw.polygon(self.image,color,pointlist)
self.rect = self.image.get_rect()
self.rect.x = randint(50,200) +480
self.rect.y = 260
self.xspeed = randint(-15,-7)
self.delete = 0
def move(self):
self.rect.x = self.rect.x + self.xspeed

def draw(self):
screen.blit(self.image,self.rect)

def 碰到(self,square):
if self.rect.colliderect(square.rect):
return True
else:
return False

def 播放背景音乐():
pygame.mixer.music.play(-1,0)

def main():

小方块= Block(50,100,50,50,(0,55,255))
三角形列表=[]
clock = pygame.time.Clock()
运行中 = True
# 自定义事件
尖锋出现事件 = pygame.USEREVENT + 1      # 事件本质上就是整数常量。
# 比 USEREVENT 小的数值已经对应内置事件，因此任何自定义事件都要比 USEREVENT 大
pygame.time.set_timer(尖锋出现事件, 950) # 暂定每隔 950 毫秒 触发

字体= pygame.font.Font("C:/windows/fonts/msyh.ttf",38)
字体图 = 字体.render("游戏结束",True,(255,0,0))

pygame.mixer.init()
结束音效 = pygame.mixer.Sound("失败.wav")
播放背景音乐()

#以下是加的封面代码
运行中= True
while 运行中:
for event in pygame.event.get():
if event.type ==QUIT:运行中 = False
if event.type == KEYDOWN:
if event.key == K_SPACE: 运行中 = False
screen.blit(封面,(0,0))
pygame.display.update()
clock.tick(60)

运行中= True
while 运行中:
for event in pygame.event.get():
if event.type ==QUIT:运行中 = False
if event.type ==KEYDOWN:
if event.key ==K_UP and 小方块.rect.y>280 and 小方块.delete==0:
小方块.jump()
if event.type ==尖锋出现事件:
三角形列表.append(Triangle(50,100,(255,5,28)))
pygame.time.set_timer(尖锋出现事件, randint(960,1600)) # 更改为随机时间 触发

screen.blit(背景,(0,0))
if 小方块.delete==0:
小方块.move()
小方块.draw()

for tri in 三角形列表:
if tri.delete==0:
tri.move()
if tri.碰到(小方块):小方块.delete =1
tri.draw()
if tri.rect.right<0:tri.delete=1
else:
三角形列表.remove(tri)

if 小方块.delete ==1:结束音效.play();运行中=False
pygame.display.update()

clock.tick(60)

#结束界面
运行中 = True
while 运行中:
for event in pygame.event.get():
if event.type ==QUIT:运行中 = False
screen.blit(背景,(0,0))
screen.blit(哭脸,(170,100))
screen.blit(字体图,(170,50))
pygame.display.update()
clock.tick(30)
pygame.quit()

if __name__=="__main__":
main()

```