# Import the pygame library and initialise the game engine import pygame import numpy as np pygame.init() # Initialize Pygame size = (800, 800) CENTER = np.array(size) / 2 WHITE = (255, 255, 255) screen = pygame.display.set_mode(size) pygame.display.set_caption("Patrick") running = True clock = pygame.time.Clock() class Ball(object): def __init__(self, x, y, radius=10, mass=1): self.pos = np.array([x, y]) self.radius = radius self.mass = mass def render(self, screen): x, y = self.pos + CENTER pygame.draw.circle(screen, WHITE, [int(x), int(y)], self.radius, 2) class Spring(object): def __init__(self, a, b, k=0.1): self.a = a self.b = b self.k = k def render(self, screen): x1, y1 = self.a.pos + CENTER x2, y2 = self.b.pos + CENTER pygame.draw.line(screen, WHITE, [x1, y1], [x2, y2]) if __name__ == '__main__': balls = [Ball(0, 0), Ball(100, 1)] springs = [Spring(balls[0], balls[1])] while running: for event in pygame.event.get(): if event.type == pygame.QUIT: running = False screen.fill((0, 0, 0)) for ball in balls: ball.render(screen) for spring in springs: spring.render(screen) pygame.display.flip() clock.tick(60) pygame.quit()