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()