import pygame
import random
import time
# 初始化
pygame.init()
ck = pygame.display.set_mode((600, 600))
ball_x = 300
ball_y = 300
x = 300
y = 300
r = random.randint(0, 244)
g = random.randint(0, 244)
b = random.randint(0, 244)
right = True # 默认处事向右移动
down = True
ban_x, ban_y = 150, 500
# 文字1 设置文字字体和大小 font
wenzi = pygame.font.SysFont("SimHei", 40)
fenshu = 0
# 流畅: 每过多少毫秒响应多少次
pygame.key.set_repeat(500, 1)
# 图片1 导入入图片
ball = pygame.image.load("ball3.png")
benjin=pygame.image.load("ti.jpg")
bjx = 0
game_over = 1
zuigaofen = 0
pygame.mixer.init()
# 背景音乐
pygame.mixer.music.load("wzry.mp3")
pygame.mixer.music.set_volume(0.4)
pygame.mixer.music.play(-1)
# 音效
da = pygame.mixer.Sound("jineng.mp3")
da.set_volume(0.1)
while 1 < 2:
for shi_jian in pygame.event.get():
if shi_jian.type == pygame.QUIT:
pygame.quit()
elif shi_jian.type == pygame.KEYDOWN:
if shi_jian.key == pygame.K_LEFT:
ban_x = ban_x - 50
if shi_jian.key == pygame.K_RIGHT:
ban_x = ban_x + 50
elif shi_jian.type == pygame.MOUSEBUTTONUP:
if game_over == 1:
game_over = 2
elif shi_jian.type == pygame.MOUSEMOTION:
ban_x,ban_y = shi_jian.pos
ck.fill((14, 241, 210))
ck.blit(benjin,(bjx,0))
bjx=bjx-1
if game_over == 1:
wz=wenzi.render("点击开始游戏",True,(12,43,35))
ck.blit(wz,(200,300))
wz=wenzi.render("最高分数%d"%zuigaofen,True,(12,43,35))
ck.blit(wz,(200,400))
pygame.draw.circle(ck, (0, 0, 0), (200, 200), 30)
elif game_over == 2:
wz = wenzi.render("倒计时:3", True, (12, 43, 35))
ck.blit(wz, (200, 300))
game_over = 3
pygame.display.update()
time.sleep(0.4)
elif game_over == 3:
wz = wenzi.render("倒计时:2", True, (12, 43, 35))
ck.blit(wz, (200, 300))
game_over = 4
pygame.display.update()
time.sleep(0.4)
elif game_over == 4:
wz = wenzi.render("倒计时:1", True, (12, 43, 35))
ck.blit(wz, (200, 300))
game_over = 5
pygame.display.update()
time.sleep(0.4)
t1 = time.time()
sheng_yu_time = 60
fenshu = 0
else:
y = y + 1
if y > 600:
y = 0
x = random.randint(1, 600)
r = random.randint(0, 244)
g = random.randint(0, 244)
b = random.randint(0, 244)
if ban_x < -3:
ban_x = 1
if ban_x > 400:
ban_x = 397
# 判断是否接到小球
if ban_x < x < ban_x + 200 and ban_y < y < ban_y + 30:
fenshu = fenshu + 1
y = 0
x = random.randint(1, 600)
da.play()
# 记录一次时间
t2=time.time()
sheng_yu_time=60-(t2-t1)
if sheng_yu_time<0:
if fenshu>zuigaofen:
zuigaofen=fenshu
game_over = 1
# 文字2 设置文字内容和颜色 render设置(文字内容,True,颜色)
wenzi2 = wenzi.render('win %d' % fenshu, True, (12, 34, 56))
# 文字3 把文字放在窗口上 窗口.blit(文字2,(x,y))
ck.blit(wenzi2, (300, 300))
sysj = wenzi.render("%d"%sheng_yu_time,True,(56,7,91))
ck.blit(sysj,(0,300))
# 画一个小球:参数分别pygame.draw.circle(窗口,(红,绿,蓝),(球x坐标,球y坐标),球的半径)
# pygame.draw.circle(ck, (r, g, b), (x, y), 30)
# 画一个长方形:参数分别pygame.draw.rect(窗口,(红,绿,蓝),(球x坐标,球y坐标,长方形宽度,长方形高度))
pygame.draw.rect(ck, (1, 11, 1), (ban_x, ban_y, 200, 30))
ck.blit(ball, (x,y))
pygame.display.update()
weixuan-接小球游戏终极
猜你喜欢
转载自blog.csdn.net/houlaos/article/details/106454051
今日推荐
周排行