.../240615 移动控制.py

73 lines
1.7 KiB
Python
Raw Permalink Normal View History

import pygame,sys
pygame.init()
window_size = (260,300)
sc = pygame.display.set_mode(window_size)
pygame.display.set_caption('反弹的小球')
ball_xy = [110,175]
ball_r = 10
ball_speed = [3,3]
box = pygame.Rect(115,290,50,15)
zk_lst = []
zk_x = 10
zk_y = 10
for i in range(5):
for j in range(5):
zk_rect = pygame.Rect(zk_x,zk_y,40,20)
zk_lst.append(zk_rect)
zk_x += 50
zk_x = 10
zk_y += 30
running = True
while running:
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
sc.fill('white')
ball = pygame.draw.circle(sc, 'black', ball_xy, ball_r)
if ball_xy[0] - ball_r < 0 or ball_xy[0] + ball_r > window_size[0]:
ball_speed[0] = -ball_speed[0]
if ball_xy[1] - ball_r < 0 or ball_xy[1] + ball_r > window_size[1]:
ball_speed[1] = -ball_speed[1]
if ball_xy[1] + ball_r > 300 and not ball.colliderect(box):
running = False
if ball.colliderect(box):
ball_speed[1] = -ball_speed[1]
for i in zk_lst:
if ball.colliderect(i):
zk_lst.remove(i)
if zk_lst == []:
running = False
ball_xy[0] += ball_speed[0]
ball_xy[1] += ball_speed[1]
pygame.draw.rect(sc, (0, 0, 0), rect=box)
for i in zk_lst:
pygame.draw.rect(sc, 'blue', rect=i)
keys = pygame.key.get_pressed()
if keys[pygame.K_LEFT]:
if box.x <= 0:
continue
else:
box.x += -2
if keys[pygame.K_RIGHT]:
if box.x >= 260:
continue
else:
box.x += 2
pygame.display.flip()
pygame.time.Clock().tick(35)
pygame.quit()
sys.exit()