xingtai - 接小球游戏5.0

# 窗口,退出,图画,操作,战绩,,五毛特效,音乐
# 2D 游戏
import pygame
import sys
import time
import random

# 1.加载中,初始化,loading 加载中
pygame.init()
# 2.窗口   dis分开  play玩 ---展览馆--展示
screen = pygame.display.set_mode((1080, 652))

# 3。刷新  update 升级
ball_x = 350
ball_y = 300
ban_x, ban_y, ban_k, ban_g = 350, 530,418, 70
# 设置电脑每过多少毫秒相应一次a
pygame.key.set_repeat(1, 1)
# 文字1.0  设置文字字体和大小   font字体
zi_ti = pygame.font.Font("ziti.ttf", 30)
# 图片1.0  加载图片   image 图片
ball = pygame.image.load("ball.png")
bj = pygame.image.load("bg1.jpg")
ban=pygame.image.load("ban.png")
sheng_ming = 10
fen_shu = 0
# 电脑响应时间 1毫秒响应1次
pygame.key.set_repeat(1,1)
# 音乐: 背景音乐 + 音效
# 音乐1.0 初始化
pygame.mixer.init()
# 音效1.0 加载音乐 sound
hit = pygame.mixer.Sound("xxxxx.wav")
# 音效2.0 设置声音 volume 音量
hit.set_volume(0.4)

# 背景音乐1.0 加载音乐 sound
pygame.mixer.music.load("xxxxx.mp33")
# 背景音乐2.0  设音乐 volume 音量
pygame.mixer.music.set_volume(0.4)
# 背景音乐3.0 播放
pygame.mixer.music.play(-1)


while True:
    # 电脑监控操作,事件
    for event in pygame.event.get():
        print(event)
        # 如果事件类型是退出,则退出游戏
        if event.type == pygame.QUIT:
            pygame.quit()  # 退出游戏
            sys.exit()  # 退出文件
        # 判断事件类型是不是按键  type类型
        elif event.type == pygame.KEYDOWN:
            # 判断你是按了什么键
            if event.key == pygame.K_a:
                ban_x = ban_x - 1
            if event.key == pygame.K_d:
                ban_x = ban_x + 1
            # if event.key == pygame.K_w:
            #     ban_y = ban_y - 1
            # if event.key == pygame.K_s:
            #     ban_y = ban_y + 1
    # 填充背景颜色 fill # red  green  blue
    screen.blit(bj, (0, 0))
    # 修改小球下落速度
    ball_y = ball_y + 5
    # 判断小球有没有出界面
    if ball_y > 600:
        ball_y = 0
        sheng_ming = sheng_ming - 1
    # 判断游戏有没有结束:
    if sheng_ming <= 0:
        break

    # 空气墙
    if ban_x < 0:
        ban_x = 0
    if ban_x > 600:
        ban_x = 600
    if ban_y < -70:
        ban_y = 600
    # 向下
    # 2。判断得分
    # 板的x坐标 小于 球的x坐标 小于 板的x坐标+宽度
    # 板的y坐标 小于 球的y坐标 小于 板的y坐标+高度
    if ban_x + ban_k > ball_x > ban_x and ban_y + ban_g > ball_y > ban_y:
        fen_shu = fen_shu + 1
        ball_y = 0
        ball_x = random.randint(0, 700)
        # 音效3.0 播放音效
        hit.play()

    # 画一个圆形: 屏幕,颜色,圆型坐标,半径
    # pygame.draw.circle(screen, (0, 245, 255), (ball_x, ball_y), 50)
    # 画一个长方形:   屏幕 颜色  板的x坐标   板的y坐标    板宽    板高
    pygame.draw.rect(screen, (170, 182, 1), (ban_x, ban_y, ban_k, ban_g))
    # 文字2.0 设置文字内容 render设置参数:具体内容
    wen_zi = zi_ti.render("加油,努力", True, (255, 0, 0))
    wen_zi2 = zi_ti.render("为了人民币", True, (255, 0, 0))
    wen_zi3 = zi_ti.render("分数:%d" % fen_shu, True, (255, 0, 0))
    wen_zi4 = zi_ti.render("生命:%d" % sheng_ming, True, (255, 0, 0))
    # 文字3.0 放置文字到窗口上 blit传送  文字,坐标
    screen.blit(wen_zi, (ban_x + 10, ban_y))
    screen.blit(wen_zi2, (ban_x + 10, ban_y + 30))
    screen.blit(wen_zi3, (0, 0))
    screen.blit(wen_zi4, (0, 30))

    # 图片2.0:图片放在窗口上
    screen.blit(ball, (ball_x, ball_y))
    screen.blit(ban, (ban_x, ban_y))
    pygame.display.update()
    # time.sleep(0.001)
发布了516 篇原创文章 · 获赞 21 · 访问量 2万+

猜你喜欢

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