From: Skullheadx <704277@pdsb.net> Date: Mon, 16 Jan 2023 23:27:31 +0000 (-0500) Subject: Clean up files X-Git-Url: http://git.skullheadx.com/nixos/static/projects.html?a=commitdiff_plain;h=1d69232cd8987720a203e880e27efc6213fcb790;p=Collision-Simulation.git Clean up files --- diff --git a/box.py b/box.py index cd0bf5b..2e14630 100644 --- a/box.py +++ b/box.py @@ -1,6 +1,7 @@ -from colours import * import pygame +from colours import * + class Box: line_thickness = 5 diff --git a/collision.py b/collision.py index 2ad00d2..7bd892c 100644 --- a/collision.py +++ b/collision.py @@ -1,4 +1,4 @@ -def handleBoxCollision(particle, box): +def handleBoxCollision(particle, box): # Discrete Collision Detection if particle.left <= box.left or particle.right >= box.right: particle.velocity.x *= -1 if particle.bottom >= box.bottom or particle.top <= box.top: diff --git a/display.py b/display.py index e5fd63e..77f738e 100644 --- a/display.py +++ b/display.py @@ -1,7 +1,8 @@ +import pygame + +from box import Box from colours import * from particle import Particle -from box import Box -import pygame pygame.init() diff --git a/particle.py b/particle.py index 0f71de8..6e6f742 100644 --- a/particle.py +++ b/particle.py @@ -1,8 +1,10 @@ -import pygame from math import copysign -from colours import * + +import pygame + from box import Box from collision import handleBoxCollision +from colours import * class Particle: @@ -21,14 +23,22 @@ class Particle: self.collision_layer = collision_layer - def update(self, delta): - self.velocity.x = min(self.speed_limit, abs(self.velocity.x + self.acceleration.x * delta))\ - * copysign(1, self.velocity.x + self.acceleration.x * delta) - self.velocity.y = min(self.speed_limit, abs(self.velocity.y + self.acceleration.y * delta))\ - * copysign(1, self.velocity.y + self.acceleration.y * delta) + def get_next_frame(self, position, velocity, delta): + vel = pygame.Vector2() + pos = pygame.Vector2() + + vel.x = min(self.speed_limit, abs(velocity.x + self.acceleration.x * delta)) \ + * copysign(1, velocity.x + self.acceleration.x * delta) + vel.y = min(self.speed_limit, abs(velocity.y + self.acceleration.y * delta)) \ + * copysign(1, velocity.y + self.acceleration.y * delta) + + pos.x = position.x + velocity.x * delta + pos.y = position.y + velocity.y * delta - self.position.x += self.velocity.x * delta - self.position.y += self.velocity.y * delta + return pos, vel + + def update(self, delta): + self.position, self.velocity = self.get_next_frame(self.position, self.velocity, delta) self.left = self.position.x - self.radius self.right = self.position.x + self.radius