junjie - 接小球游戏4.0

import pygame
import random
import time

def qiu(bally,speedy,ballx,speedx,r,g,b ):
    bally = bally + speedy
    ballx = ballx + speedx
    if bally < 0:
        speedy = 1
    if ballx >= chuang_kou_kuan:
        speedx = -1
    if ballx <= 0:
        speedx = 1

    if bally >= chuang_kou_gao:
        ballx = random.randint(10,590)
        bally = 0
        r = random.randint(0, 255)
        g = random.randint(0, 255)
        b = random.randint(0, 255)
    pygame.draw.circle(chuang_kou, (r, g, b), (ballx, bally), bai_jing)
    return bally,speedy,ballx,speedx,r,g,b

r=random.randint(0,255)
g=random.randint(0,255)
b=random.randint(0,255)
ballx=200
bally=0
pygame.init()
chuang_kou_kuan = 600
chuang_kou_gao = 700
chuang_kou=pygame.display.set_mode((chuang_kou_kuan,chuang_kou_gao))
bai_jing=random.randint(20,50)
speedy = 1
speedx = 1
rect_gao=10
rect_kuan=150
banx=300
bany=650
# 设置每多少毫秒电脑响应识别多少次
pygame.key.set_repeat(100,1)
# 文字1.0 设置文字的字体和大小   font
wz1 = pygame.font.SysFont("SimHei",40)
fen_shu=0
shengming = 3
game_over = True
shang_ci_fenshu = 0
zuigao_fenshu = 0
# 图片1:导入图片 image
beijing = pygame.image.load("bj2.jpg")
bx = 0
by = 0


while 1>0:
    for event in pygame.event.get():
        if event.type==pygame.QUIT:
            pygame.quit()
        elif event.type == pygame.KEYDOWN:
            if event.key == pygame.K_a:
                banx = banx-20
            elif event.key == pygame.K_d:
                banx = banx+20
        elif event.type == pygame.MOUSEMOTION:
            banx,bany=event.pos
        elif event.type == pygame.MOUSEBUTTONUP:
            if game_over:
                game_over = False
                t1=time.time()



    # chuang_kou.fill((1,1,1))
    chuang_kou.blit(beijing,(bx, by))
    bx = bx-1
    if game_over:
        chuang_kou.fill((1, 70, 130))
        wz4 = wz1.render("点击开始游戏", True, (255, 255, 255))
        chuang_kou.blit(wz4, (200, 350))
        wz6 = wz1.render("最高分数%d"%zuigao_fenshu, True, (255, 255, 255))
        chuang_kou.blit(wz6, (0, 50))
        wz7 = wz1.render("上次分数%d"%shang_ci_fenshu, True, (255, 255, 255))
        chuang_kou.blit(wz7, (400, 50))

    else:
        bally,speedy,ballx,speedx,r,g,b  = qiu(bally,speedy,ballx,speedx ,r,g,b)

        # 板的空气墙
        if banx<-40:
            banx=5
        elif banx>460:
            banx=450
        # 判断接到小球?
        if bally >= 699:
            shengming -= 1
        if banx<ballx<banx+rect_kuan and bany<bally<bany+rect_gao:
            bally = bany-1
            speedy=-1
            fen_shu = fen_shu + 1
        # 画一个长方形:rect
        pygame.draw.rect(chuang_kou,(255,255,255),(banx,bany,rect_kuan,rect_gao))
        # 文字2.0 设置字体内容和颜色
        wz2 = wz1.render("分数%d"%fen_shu, True, (255,255,255))
        # 文字3.0 设置文字位置
        chuang_kou.blit(wz2, (450,50))
        # 文字2.0 设置字体内容和颜色
        wz3 = wz1.render("生命值%d"%shengming, True, (255,255,255))
        # 文字3.0 设置文字位置
        chuang_kou.blit(wz3, (10,50))
        t2=time.time()
        djs=int(60-(t2-t1))
        wz5 = wz1.render("倒计时%d"%djs, True, (255,255,255))

        chuang_kou.blit(wz5, (225,50))
        if shengming<=0 or djs<=0:
            game_over=True
            shang_ci_fenshu=fen_shu
            if fen_shu>zuigao_fenshu:
                zuigao_fenshu=fen_shu
            shengming = 3
            fen_shu = 0


    pygame.display.update()

















猜你喜欢

转载自blog.csdn.net/houlaos/article/details/106598737
今日推荐