def test_shouldConsiderMassOnImpact(self): entities = [ EntityMock(0, 0, 1, (0, 0)), EntityMock(0, 2, 1, (0, -2), 2) ] colide(entities) self.assertTupleEqual(entities[0].forceApplied, (0, -3)) self.assertTupleEqual(entities[1].forceApplied, (0, 3))
def symulatorLoop(self): self.screen.fill(white) shouldQuit = False entities = [] entities += self.createBalls() while not shouldQuit: for event in pygame.event.get(): shouldQuit = (event.type == pygame.QUIT) self.screen.fill(white) #self.applyGravity(entities) self.moveEntities(entities) colide(entities) self.drawEntities(entities) pygame.display.update() self.clock.tick(60)
def test_shouldBounceBackWhenTwoBallsColideHeadOn(self): entities = [EntityMock(0, 0, 1, (2, 0)), EntityMock(2, 0, 1, (-2, 0))] colide(entities) self.assertTupleEqual(entities[0].forceApplied, (-3, 0)) self.assertTupleEqual(entities[1].forceApplied, (3, 0))
def test_shouldDoNothingWhenEntitiesDontColide(self): entities = [EntityMock(0, 0, 1), EntityMock(0, 4, 1)] colide(entities) for e in entities: self.assertTupleEqual(e.forceApplied, (0, 0))
def test_shouldDoNothingWhenThereIsOnlyOne(self): entities = [EntityMock()] colide(entities) self.assertTupleEqual(entities[0].forceApplied, (0, 0))