Пример #1
0
 def test_show_calls(self):
     bob = Square('bob', alpha=0.0)
     show = actions.FadeIn(bob, 0, 10)
     sch = Scheduler()
     sch.add_action(show)
     self.assertEqual(bob.alpha, 0.0)
     sch.next()
     self.assertAlmostEqual(bob.alpha, 0.1)
     sch.next()
     self.assertAlmostEqual(bob.alpha, 0.2)
     sch.next()
     self.assertAlmostEqual(bob.alpha, 0.3)
     sch.next()
     self.assertAlmostEqual(bob.alpha, 0.4)
     sch.next()
     self.assertAlmostEqual(bob.alpha, 0.5)
     sch.next()
     self.assertAlmostEqual(bob.alpha, 0.6)
     sch.next()
     self.assertAlmostEqual(bob.alpha, 0.7)
     sch.next()
     self.assertAlmostEqual(bob.alpha, 0.8)
     sch.next()
     self.assertAlmostEqual(bob.alpha, 0.9)
     sch.next()
     self.assertAlmostEqual(bob.alpha, 1.0)
Пример #2
0
 def test_fade_out(self):
     bob = Square('bob')
     hide = actions.FadeOut(bob, 0, 10)
     sch = Scheduler()
     sch.add_action(hide)
     self.assertEqual(bob.alpha, 1.0)
     sch.next()
     self.assertAlmostEqual(bob.alpha, 0.9)
     sch.next()
     self.assertAlmostEqual(bob.alpha, 0.8)
     sch.next()
     self.assertAlmostEqual(bob.alpha, 0.7)
     sch.next()
     self.assertAlmostEqual(bob.alpha, 0.6)
     sch.next()
     self.assertAlmostEqual(bob.alpha, 0.5)
     sch.next()
     self.assertAlmostEqual(bob.alpha, 0.4)
     sch.next()
     self.assertAlmostEqual(bob.alpha, 0.3)
     sch.next()
     self.assertAlmostEqual(bob.alpha, 0.2)
     sch.next()
     self.assertAlmostEqual(bob.alpha, 0.1)
     sch.next()
     self.assertAlmostEqual(bob.alpha, 0.0)
     self.assertEqual(sch.frame, 10)
     sch.next()
     self.assertAlmostEqual(bob.alpha, 0.0)
     self.assertEqual(sch.frame, 11)
Пример #3
0
 def test_create_sequence(self):
     stage = Stage()
     stage.num_frames = 100
     star = Star('star', color='red', pos=(0, 0))
     stage.add_actor(star)
     stage.add_action(Move(star, 0, 100, stage.refs['bottom_right']))
     bob = Square('bob', pos=stage.refs['center'])
     stage.add_actor(bob)
     stage.add_action(Land(bob, 0, 100, (stage.width, stage.height // 2)))
     for frame in range(0, stage.num_frames):
         stage.draw(frame)
Пример #4
0
    def test_two_actions(self):

        scheduler = control.Scheduler()
        self.assertEqual(len(scheduler.actors), 0)

        charles = Square('Charles', pos=(100, 0), color='brown4', side=75)
        scheduler.add_action(Fall(charles, 0, 5, (100, 300)))

        self.assertEqual(len(scheduler.actors), 1)

        dorothy = Square('Dorothy', pos=(0, 0), color='#32BF98', side=25)
        scheduler.add_action(Move(dorothy, 0, 5, (100, 100)))
        self.assertEqual(len(scheduler.actors), 2)

        # Frame 0
        self.assertEqual(charles.pos, (100, 0))
        self.assertEqual(dorothy.pos, (0, 0))

        self.assertEqual(scheduler.next(), 1)  # Frame 1
        self.assertEqual(charles.pos, (100, 12))
        self.assertEqual(dorothy.pos, (20, 20))

        self.assertEqual(scheduler.next(), 2)  # Frame 2
        self.assertEqual(charles.pos, (100, 48))
        self.assertEqual(dorothy.pos, (40, 40))

        self.assertEqual(scheduler.next(), 3)  # Frame 3
        self.assertEqual(charles.pos, (100, 108))
        self.assertEqual(dorothy.pos, (60, 60))

        self.assertEqual(scheduler.next(), 4)  # Frame 4
        self.assertEqual(charles.pos, (100, 192))
        self.assertEqual(dorothy.pos, (80, 80))

        self.assertEqual(scheduler.next(), 5)  # Frame 5
        self.assertEqual(charles.pos, (100, 300))
        self.assertEqual(dorothy.pos, (100, 100))

        self.assertEqual(scheduler.next(), 6)  # Frame 6
        self.assertEqual(charles.pos, (100, 300))
        self.assertEqual(dorothy.pos, (100, 100))
Пример #5
0
 def test_colorize_on_pygame(self):
     engine = PyGameEngine()
     stage = Stage(engine)
     stage.num_frames = 75
     for row in range(50, 780, 100):
         for col in range(50, 1280, 100):
             name = 'bob{}x{}'.format(col, row)
             actor = Square(
                 name,
                 color=colors.random_color(),
                 pos=(col, row),
                 side=90,
             )
             stage.add_actor(actor)
             stage.add_action(
                 actions.Colorize(actor, 5, 70, colors.random_color()))
     for frame in range(stage.num_frames):
         stage.draw(frame)
Пример #6
0
 def test_fade_in_in_pygame(self):
     sch = Scheduler()
     engine = PyGameEngine()
     studio = Stage(engine)
     for row in range(50, 780, 100):
         for col in range(50, 1280, 100):
             from_frame = random.randint(5, 30)
             size = random.randint(10, 70)
             to_frame = from_frame + size
             name = 'bob{}x{}'.format(col, row)
             actor = Square(
                 name,
                 color=colors.random_color(),
                 pos=(col, row),
                 side=90,
                 alpha=0.1,
             )
             sch.add_action(actions.FadeIn(actor, from_frame, to_frame))
             studio.add_actor(actor)
     for frame in range(75):
         studio.draw(frame)
         sch.next()
Пример #7
0
    def test_create_sequence(self):
        s = Stage(PyGameEngine())
        s.num_frames = 100
        star = Star('star', color='gold', pos=(1280, 720), radius=20)
        s.add_actor(star)

        bob = Square('bob', pos=(0, s.height // 2))
        s.add_actor(bob)

        dice = Dice('D1', pos=(400, 400))
        s.add_actor(dice)

        mf = Bitmap('mf', 'mf.png', pos=(200, 200))
        s.add_actor(mf)

        sch = Scheduler()
        sch.add_action(Move(star, 0, 100, (0, 0)))
        sch.add_action(Swing(mf, 0, 100, (1080, 520)))
        sch.add_action(Land(bob, 0, 100, Vector(s.width, s.height // 2)))

        for frame in range(0, 100):
            s.draw(frame)
            sch.next()
Пример #8
0
 def test(self):
     bob = Square('Bob')
     sch = control.Scheduler()
     sch.add_action(Move(bob, 1, 14, (100, 0)))
     self.assertAlmostEqual(bob.pos.x, 0.000, 3)
     sch.next()  # Frame 1
     self.assertAlmostEqual(bob.pos.x, 0.000)
     sch.next()  # Frame 2
     self.assertAlmostEqual(bob.pos.x, 7.692, 3)
     sch.next()  # Frame 3
     self.assertAlmostEqual(bob.pos.x, 15.385, 3)
     sch.next()  # Frame 4
     self.assertAlmostEqual(bob.pos.x, 23.077, 3)
     sch.next()  # Frame 5
     self.assertAlmostEqual(bob.pos.x, 30.769, 3)
     sch.next()  # Frame 6
     self.assertAlmostEqual(bob.pos.x, 38.462, 3)
     sch.next()  # Frame 7
     self.assertAlmostEqual(bob.pos.x, 46.154, 3)
     sch.next()  # Frame 8
     self.assertAlmostEqual(bob.pos.x, 53.846, 3)
     sch.next()  # Frame 9
     self.assertAlmostEqual(bob.pos.x, 61.538, 3)
     sch.next()  # Frame 10
     self.assertAlmostEqual(bob.pos.x, 69.231, 3)
     sch.next()  # Frame 11
     self.assertAlmostEqual(bob.pos.x, 76.923, 3)
     sch.next()  # Frame 12
     self.assertAlmostEqual(bob.pos.x, 84.615, 3)
     sch.next()  # Frame 13
     self.assertAlmostEqual(bob.pos.x, 92.308, 3)
     sch.next()  # Frame 14
     self.assertAlmostEqual(bob.pos.x, 100.0, 3)
     sch.next()  # Frame 15
     self.assertAlmostEqual(bob.pos.x, 100.0, 3)
     sch.next()  # Frame 16
     self.assertAlmostEqual(bob.pos.x, 100.0, 3)
Пример #9
0
        dwg.add(dwg.line((0, x_axis), (WIDTH, x_axis), stroke=svgwrite.rgb(10, 10, 16, '%')))
        x_axis += 100

def draw_actor(scr, actor):
    color = actor.color.as_rgb()
    points = [actor.pos + v for v in actor.vertexs]   
    pygame.draw.polygon(scr, color, points, 0)
    pygame.draw.aalines(scr, WHITE, True, points)
    if DEBUG:
        for v in points:
            pygame.draw.circle(scr, RED, v, 3, 0)
        write_at(scr, actor.pos, actor.name)

charles = Square('Charles', 
    pos=Vector(100, 0), 
    color='brown4', 
    width=75, height=25
    )

charles.next()

dwg = svgwrite.Drawing('test.svg', size=(1280, 720))
draw_grid(dwg)
dwg.add(dwg.line((0, 0), (1280, 720), stroke=svgwrite.rgb(10, 10, 16, '%')))
dwg.add(dwg.rect((10, 10), (100, 100), rx=15, ry=15, stroke='blue'))

dwg.add(dwg.text('Test', insert=(100, 200), fill='red'))
dwg.save()

#        draw_grid(screen)
Пример #10
0
 def test_create_frame(self):
     s = Stage(SVGEngine(output_dir='./tmp'))
     star = Star('star', color='red', pos=(0, 0))
     s.add_actor(star)
     s.add_actor(Square('bob'))
     s.draw(0)
Пример #11
0
def test_uso():
    sch = Scheduler()
    bob = Square('Bob')
    task = actions.Action(bob, 5, 10)
    sch.add_action(task)
    assert (task.actor.name, 5) in sch.actions