コード例 #1
0
ファイル: test_actions.py プロジェクト: euribates/grafel
 def test_fade_out_with_label(self):
     bob = Text('bob', text='Bob', pos=(640, 320))
     studio = Stage()
     studio.add_actor(bob)
     studio.add_action(actions.FadeOut(bob, 10, 40))
     for frame in range(75):
         studio.draw(frame)
コード例 #2
0
ファイル: test_actions.py プロジェクト: euribates/grafel
 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)
コード例 #3
0
ファイル: test_actions.py プロジェクト: euribates/grafel
    def test(self):
        t = Text('timer', pos=(1000, 700), color='navy')
        e1 = Label('e1', text='Enter on 75', width=190, color='gold')
        bg = Rect('bg', width=30, height=600, pos=(620, 320), color='orange')
        fg = Rect('fg', width=30, height=600, pos=(660, 320), color='navy')
        e = Label('exit', text="I'll go on 2s", pos=(200, 200))

        sch = Scheduler()
        sch.add_action(actions.Timer(t, 0, 150))
        sch.add_action(actions.Enter(e1, 75, 76, (640, 320)))
        sch.add_action(actions.Background(bg, 100, 101))
        sch.add_action(actions.Foreground(fg, 125, 126))
        sch.add_action(actions.Exit(e, 50, 51))
        engine = PyGameEngine()
        studio = Stage(engine)
        studio.add_actors(t, fg, e, e1, bg)
        for frame in range(150):
            studio.draw(frame)
            sch.next()
コード例 #4
0
def test_easing():
    move = Label('Move', width=190, pos=(100, 30), color='gold')
    fall = Label('Fall', width=190, pos=(300, 30), color='gold')
    land = Label('Land', width=190, pos=(500, 30), color='gold')
    ease_in = Label('EaseIn', width=190, pos=(700, 30), color='gold')
    ease_out = Label('EaseOut', width=190, pos=(900, 30), color='gold')
    swing = Label('Swing', width=190, pos=(1100, 30), color='gold')
    sch = Scheduler()
    sch.add_action(actions.Move(move, 5, 70, (100, 700)))
    sch.add_action(actions.Fall(fall, 5, 70, (300, 700)))
    sch.add_action(actions.Land(land, 5, 70, (500, 700)))
    sch.add_action(actions.EaseIn(ease_in, 5, 70, (700, 700)))
    sch.add_action(actions.EaseOut(ease_out, 5, 70, (900, 700)))
    sch.add_action(actions.Swing(swing, 5, 70, (1100, 700)))
    engine = PyGameEngine()
    stage = Stage(engine)
    stage.add_actors(move, fall, land, ease_in, ease_out, swing)
    for frame in range(75):
        stage.draw(frame)
        sch.next()
コード例 #5
0
ファイル: test_actions.py プロジェクト: euribates/grafel
 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()
コード例 #6
0
ファイル: export.py プロジェクト: euribates/grafel
opts = config.get_options()

if opts.script:
    parser = language.get_parser()
    try:
        tree = parser.parseFile(opts.script)
    except language.ParseException as err:
        logger.error('Error de parseo en {}'.format(opts.script))
        logger.error(err)
        logger.error('num línea: {}'.format(err.lineno))
        logger.error('>>> {}'.format(err.line))
        logger.error('---' + '-'*err.col + '^')
        sys.exit()

    actors = [language.get_actor(_) for _ in language.actors_list()]
    engine = SVGEngine(output_dir=opts.output_dir)
    stage = Stage(engine, options=opts)
    stage.add_actors(*actors)
    for t in language.get_actions():
        interval, action_name, actor_name,  *args = t
        from_frame, to_frame = interval
        actor = language.get_actor(actor_name)
        action = actions.create_action(
            action_name, actor,
            from_frame, to_frame,
            *args
            )
        stage.add_action(action)
    for frame in range(stage.num_frames):
        stage.draw(frame)
コード例 #7
0
ファイル: test_studio.py プロジェクト: euribates/grafel
    def test_sequence(self):

        sch = Scheduler()
        s = Stage(PyGameEngine())
        s.num_frames = 80
        middle = s.height // 2
        dice1 = Dice('D1', num=1)
        dice1.place(1 * s.width // 7, middle)
        sch.add_action(
            Land(dice1, 0, 60, Vector(1 * s.width // 7, s.height - 50)))
        sch.add_action(Swing(dice1, 60, 80, dice1.initial_state['pos']))
        s.add_actor(dice1)

        dice2 = Dice('D2', num=2)
        dice2.place(2 * s.width // 7, middle)
        sch.add_action(
            Fall(dice2, 0, 60, Vector(2 * s.width // 7, s.height - 50)))
        sch.add_action(Swing(dice2, 60, 80, dice2.initial_state['pos']))
        s.add_actor(dice2)

        dice3 = Dice('D3', num=3)
        dice3.place(3 * s.width // 7, middle)
        sch.add_action(Fall(dice3, 0, 60, Vector(3 * s.width // 7, 50)))
        sch.add_action(Swing(dice3, 60, 80, dice3.initial_state['pos']))
        s.add_actor(dice3)

        dice4 = Dice('D4', num=4)
        dice4.place(4 * s.width // 7, middle)
        sch.add_action(Land(dice4, 0, 60, Vector(4 * s.width // 7, 50)))
        sch.add_action(Swing(dice4, 60, 80, dice4.initial_state['pos']))
        s.add_actor(dice4)

        dice5 = Dice('D5', num=5)
        dice5.place(5 * s.width // 7, middle)
        sch.add_action(
            Move(dice5, 0, 60, Vector(5 * s.width // 7, s.height - 50)))
        sch.add_action(Swing(dice5, 60, 80, dice5.initial_state['pos']))
        s.add_actor(dice5)

        dice6 = Dice('D6', num=6)
        dice6.place(6 * s.width // 7, middle)
        sch.add_action(Move(dice6, 0, 60, Vector(6 * s.width // 7, 50)))
        sch.add_action(Swing(dice6, 60, 80, dice6.initial_state['pos']))
        s.add_actor(dice6)

        t1 = Label(
            'Texto1',
            pos=(s.width // 2, 50),
            color='gold',
            width=200,
            height=100,
        )
        for i in range(0, 81, 20):
            fall_pos = vectors.get_random_position_vector(s.width, s.height)
            land_pos = vectors.get_random_position_vector(s.width, s.height)
            sch.add_action(Land(t1, i, i + 25, fall_pos))
            sch.add_action(Fall(t1, i, i + 25, land_pos))

        s.add_actors(t1)

        for frame in range(0, 100):
            s.draw(frame)
            sch.next()
コード例 #8
0
ファイル: test_studio.py プロジェクト: euribates/grafel
    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()
コード例 #9
0
ファイル: test_studio.py プロジェクト: euribates/grafel
 def test_create(self):
     Stage(PyGameEngine())
コード例 #10
0
ファイル: test_studio.py プロジェクト: euribates/grafel
 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)
コード例 #11
0
ファイル: test_studio.py プロジェクト: euribates/grafel
 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)