95 lines
2.4 KiB
Python
95 lines
2.4 KiB
Python
import pygame as pg
|
|
from math import pi
|
|
from rigidbody import *
|
|
from collider.types import RectCollider, CircleCollider
|
|
|
|
from tools import debug
|
|
|
|
def main():
|
|
running=True
|
|
pg.init()
|
|
clock=pg.time.Clock()
|
|
screen = pg.display.set_mode((500,500))
|
|
debug.enabled = True
|
|
debug._screen = screen
|
|
|
|
physics = PhysicsSystem()
|
|
ball_collider = CircleCollider(10)
|
|
rect = RectCollider(pg.Vector2(20,20))
|
|
linecollider = RectCollider((495, 5))
|
|
|
|
physics.add_body(
|
|
RigidBody(
|
|
Transform(pg.Vector2(250,0)),
|
|
linecollider,
|
|
pg.Vector2(0,0),
|
|
mass=0.0,
|
|
restitution=1
|
|
)
|
|
)
|
|
|
|
physics.add_body(
|
|
RigidBody(
|
|
Transform(pg.Vector2(250,500)),
|
|
linecollider,
|
|
pg.Vector2(0,0),
|
|
mass=0.0,
|
|
restitution=1
|
|
)
|
|
)
|
|
|
|
physics.add_body(
|
|
RigidBody(
|
|
Transform(pg.Vector2(0,250),rotation=pi/2.0),
|
|
linecollider,
|
|
pg.Vector2(0,0),
|
|
mass=0.0,
|
|
restitution=1
|
|
)
|
|
)
|
|
|
|
physics.add_body(
|
|
RigidBody(
|
|
Transform(pg.Vector2(500,250),rotation=pi/2),
|
|
linecollider,
|
|
pg.Vector2(0,0),
|
|
mass=0.0,
|
|
restitution=1
|
|
)
|
|
)
|
|
|
|
while running:
|
|
|
|
dt = clock.tick(144) / 1000
|
|
screen.fill((0,0,0))
|
|
|
|
physics.update(dt)
|
|
|
|
debug.debug()
|
|
#ball3.draw(screen)
|
|
pg.display.flip()
|
|
for event in pg.event.get():
|
|
|
|
if event.type == pg.MOUSEBUTTONDOWN:
|
|
if event.button == 1:
|
|
physics.add_body(
|
|
RigidBody(
|
|
transform=Transform(pg.Vector2(pg.mouse.get_pos())),
|
|
collider=ball_collider,
|
|
velocity=pg.Vector2(0,0),
|
|
)
|
|
)
|
|
if event.button == 3:
|
|
physics.add_body(
|
|
RigidBody(
|
|
Transform(pg.Vector2(pg.mouse.get_pos())),
|
|
collider=rect,
|
|
velocity=pg.Vector2(0,0),
|
|
)
|
|
)
|
|
|
|
if event.type == pg.QUIT:
|
|
running = False
|
|
|
|
if __name__ == "__main__":
|
|
main() |