import pygame, sys, pymunk, random def create_apple(space, pos): body = pymunk.Body(1, 100, body_type = pymunk.Body.DYNAMIC) body.position = pos shape = pymunk.Circle(body, 65) # hitbox size, 65 is default space.add(body, shape) return shape def draw_apples(apples): for apple in apples: pos_x = int(apple.body.position.x) pos_y = int(apple.body.position.y) apple_rect = apple_surface.get_rect(center = (pos_x, pos_y)) screen.blit(apple_surface, apple_rect) def static_ball(space, pos): body = pymunk.Body(body_type = pymunk.Body.STATIC) body.position = pos shape = pymunk.Circle(body, 50) space.add(body, shape) return shape def draw_static_ball(balls): for ball in balls: pos_x = int(ball.body.position.x) pos_y = int(ball.body.position.y) pygame.draw.circle(screen, (0, 0, 0), (pos_x, pos_y), 40) pygame.init() screen = pygame.display.set_mode((1600, 900)) clock = pygame.time.Clock() space = pymunk.Space() space.gravity = (0, 500) # gravity, default is (0, 500) apples = [] balls = [] for i in range(50): balls.append(static_ball(space, (random.randint(0, 1920), random.randint(0, 1080)))) """ plinko ! for i in range(8): for j in range(8): if j < i and i != 1: balls.append(static_ball(space, (j*150 - i*75 + 825, i*120 - 60))) """ while True: for event in pygame.event.get(): if event.type == pygame.QUIT: pygame.quit() sys.exit() if event.type == pygame.MOUSEBUTTONDOWN: apple_surface = pygame.image.load('apple_red.png') for i in range(1): apples.append(create_apple(space, event.pos)) """ BROKEN atm (needs a mouse click before a key press) but spawns a ball on any key press if event.type == pygame.KEYDOWN: for i in range(1): apples.append(create_apple(space, (random.randint(0, 1920), random.randint(0, 1080)))) """ screen.fill((217, 217, 217)) draw_apples(apples) draw_static_ball(balls) space.step(1/50) pygame.display.update() clock.tick(120)