-
Notifications
You must be signed in to change notification settings - Fork 0
/
main.py
49 lines (34 loc) · 1.09 KB
/
main.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
import pygame
from time import time
from rope import Rope, Vec, Collider
#region pygame init
pygame.init()
size = (600, 600)
screen = pygame.display.set_mode(size)
screen.fill([255, 255, 255])
pygame.display.set_icon(screen)
clock, fps = pygame.time.Clock(), 0
delta_time = 0 ; frame_start_time = 0
#endregion
rope = Rope(
x=size[0]/2, y=10,
length=500, resolution=50
)
mouse_collider = Collider(0, 0)
mouse_collider.size = 50
while True:
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
quit()
frame_start_time = time()
screen.fill(0)
mpos = Vec(pygame.mouse.get_pos())
mouse_collider.pos.linear_interpolate(mpos, t=delta_time)
pygame.draw.circle(screen, [10, 10, 10], mouse_collider.pos.get(), mouse_collider.size)
rope.update([mouse_collider], delta_time=delta_time)
rope.draw(screen)
pygame.display.update()
clock.tick(fps)
delta_time = time() - frame_start_time
pygame.display.set_caption(f'Framerate: {int(clock.get_fps())}')