コード例 #1
0
ファイル: test.py プロジェクト: freider/keiro
 def test_update(self):
     p = LinearParticle(1, 5, 0)
     p.speed = 1
     p.turningspeed = 3 * math.pi / 4
     goal = Vec2d(0, 4)
     p.waypoint_push(goal)
     p.update(1)
     self.assertAlmostEqual(p.position.x, 1)
     self.assertAlmostEqual(p.position.y, 5)
     self.assertAlmostEqual(p.angle, -3 * math.pi / 4)
     p.update(math.sqrt(2) * 0.99)
     self.assertAlmostEqual(p.position.x, 0.01, 6)
     self.assertAlmostEqual(p.position.y, 4.01, 6)
     p.update(10)
     self.assertEqual(p.position, goal)
コード例 #2
0
ファイル: test_physics.py プロジェクト: freider/keiro
 def testWaypointing(self):
     p = LinearParticle(10, 5, 0)
     p.speed = 5
     p.turningspeed = math.pi / 2
     waypoints = (Vec2d(15, 5), Vec2d(10, 5), Vec2d(10, 10))
     for t in waypoints:
         p.waypoint_push(t)
     self.assert_(p.position == Vec2d(10, 5))
     self.assert_(p.angle == 0)
     self.assert_(p.waypoint_len() == 3)
     for i in xrange(3):
         self.assert_(p.waypoint(i).position == waypoints[i])
     p.update(1)
     self.assert_(p.waypoint_len() == 2)
     self.assert_(p.position == Vec2d(15, 5))
     self.assert_(p.angle == 0)
     p.update(1)
     self.assert_(abs(abs(p.angle) - abs(math.pi / 2)) < 0.001)
     self.assert_(p.position == Vec2d(15, 5))
     p.update(1)
     self.assert_(p.position == Vec2d(15, 5))
     self.assert_(abs(abs(p.angle) - abs(math.pi)) < 0.001)
     p.update(2)
     self.assert_(p.position == Vec2d(10, 5))
     self.assert_(abs(p.angle - math.pi / 2) < 0.001)
     self.assert_(p.waypoint_len() == 1)
     p.update(100)
     self.assert_(p.waypoint_len() == 0)
     self.assert_(p.position == Vec2d(10, 10))
     self.assert_(abs(p.angle - math.pi / 2) < 0.001)