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