# 窗口,退出,图画,操作,战绩,,五毛特效,音乐
# 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)
xingtai - 接小球游戏5.0
最新推荐文章于 2020-07-02 19:49:04 发布