コード例 #1
0
 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))
コード例 #2
0
    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)
コード例 #3
0
 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))
コード例 #4
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))
コード例 #5
0
 def test_shouldDoNothingWhenThereIsOnlyOne(self):
     entities = [EntityMock()]
     colide(entities)
     self.assertTupleEqual(entities[0].forceApplied, (0, 0))