laide_teacher_python/20240630打砖块-砖块的制作.py

62 lines
1.5 KiB
Python
Raw Normal View History

2024-07-12 18:54:25 +08:00
import sys
import pygame
#初始化pygame
pygame.init()
#初始化显示
pygame.display.init()
#创建显示窗口
sc = pygame.display.set_mode((400,300))
#创建时钟对象
clock = pygame.time.Clock()
#设置变量运行游戏为真
is_running = True
#砖块初始化
zk_x = 7.5#第一块转的x坐标
zk_y = 5#第一块转的y坐标
zk_w = 30#砖块的宽度
zk_h = 10#砖块的高度
zk_list = []#初始化砖块列表
#行
for j in range(4):
#列
for i in range(11):
r = pygame.Rect(zk_x,zk_y,zk_w,zk_h)#创建砖块的矩形区域
zk_list.append(r)#将矩形区域加入列表中
zk_x += 35#更新x坐标
zk_y += 15#更新y坐标
zk_x = 7.5#重置x坐标
ballx = 200#小球的x坐标
bally = 150#
ball_speed_x = 2#
ball_speed_y = 2#
#游戏主循环
while is_running:
#背景填充黑色
sc.fill("black")
#遍历砖块列表
for z in zk_list:
#绘制砖块
pygame.draw.rect(sc,"white",z)
ball = pygame.draw.circle(sc, "white", (ballx, bally), 5)
ballx = ballx + ball_speed_x
bally = bally + ball_speed_y
if ballx > 395 or ballx < 5 :
ball_speed_x = -ball_speed_x
if bally > 295 or bally < 5 :
ball_speed_y = -ball_speed_y
#遍历事件
for event in pygame.event.get():
#如果事件为退出事件
if event.type == pygame.QUIT:
is_running = False
pygame.display.flip()#显示更新
clock.tick(60)#设置更新帧率为60
pygame.quit()#结束pygame初始化
sys.exit()#结束系统进程