def enter_scene(self, previous_scene):
        left1 = KeyFrame(position=self.actor1.position)
        left2 = KeyFrame(position=self.actor2.position)
        right1 = KeyFrame(position=(430, 70))
        right2 = KeyFrame(position=(430, 430))
        sequence1 = Sequence()
        sequence2 = Sequence()

        sequence1.add_keyframes((0, left1), (.5, right1), (1, left1))
        sequence2.add_keyframes((0, left2), (.5, right2), (1, left2))

        chain = Chain(loop=True)
        chain.add_sequences((self.actor1, sequence1), (self.actor2, sequence2))
        self.animations.fire(None, chain)
 def add_anim_to_light(self, light):
     light.animate = AnimationManagerProxy(light)
     elapsed = 0.0
     seq = Sequence(loop=True)
     for _ in range(10):
         key = KeyFrame(position=(random.randint(0, self.screen_width),
                                  random.randint(0, self.screen_height)))
         seq.add_keyframe(elapsed, key)
         elapsed += random.uniform(15.0, 30.0)
     light.animate(seq)
def takedmg(sprite):
    c = arcade.color
    sprite.color = c.RED

    seq = Sequence()

    seq[0].frame = KeyFrame.from_sprite(sprite, ['center_x'])
    seq[.1].frame = KeyFrame(center_x=sprite.center_x + 30)
    seq[.2].frame = KeyFrame(center_x=sprite.center_x - 10)
    seq[.3].frame = seq[0].frame

    seq[.1].callback = delay_set_attribute(sprite, 'color', sprite.skin_color)
    return sprite, seq
def powerup(sprite):
    flash = SquareSprite()
    flash.color = arcade.color.GOLD
    flash.position = sprite.position

    target = (sprite.center_x, sprite.center_y + 100)
    seq = Sequence()
    seq[0].frame = KeyFrame.from_sprite(sprite, ['position', 'scale', 'alpha'])
    seq[1].frame = KeyFrame(position=target, scale=1.5, alpha=0)
    seq[1].callback = flash.kill

    arcade.get_window().curtains.current_scene.flash_sprites.append(flash)
    return flash, seq
 def sequences(self):
     if not self._sequences:
         for sprite in self.sprites:
             seq = Sequence()
             seq[0].frame = KeyFrame.from_sprite(
                 sprite, ['width', 'height', 'position'])
             seq[0].frame.alpha = 255
             seq[.2].frame = KeyFrame(width=0,
                                      height=0,
                                      position=self.anchor.position,
                                      alpha=0)
             self._sequences[sprite] = seq
     return self._sequences
Exemple #6
0
 def sequence_gen(random: Optional[bool] = False) -> Sequence:
     """Generate a Sequence for the ducky to follow."""
     seq = Sequence()
     current = 0
     for ((x1, y1), (x2, y2)) in zip(POINTS_HINT[:-1], POINTS_HINT[1:]):
         p1 = x1 * constants.SCREEN_WIDTH, y1 * constants.SCREEN_HEIGHT
         p2 = x2 * constants.SCREEN_WIDTH, y2 * constants.SCREEN_HEIGHT
         frames = 1
         if random:
             frames = randint(1, 5)
         seq.add_keyframes((current, KeyFrame(position=p1)),
                           (current + frames, KeyFrame(position=p2)))
         current += frames
     return seq
 def start_anim(self, parent_scene):
     for arc in self.arcs:
         arc.start_anim()
     alive_duration = random.uniform(10.0, 90.0)
     seq = Sequence()
     fade_duration = 6.0
     seq.add_keyframe(0.0, KeyFrame(alpha=0))
     seq.add_keyframe(fade_duration, KeyFrame(alpha=MAX_ALPHA))
     seq.add_keyframe(fade_duration + alive_duration,
                      KeyFrame(alpha=MAX_ALPHA))
     seq.add_keyframe(fade_duration + alive_duration + fade_duration,
                      KeyFrame(alpha=0),
                      callback=self.coil_done)
     self.animate(seq)
def attack(sprite):
    x = sprite.center_x
    opx = sprite.opponent.center_x

    seq = Sequence()

    seq[0].frame = KeyFrame.from_sprite(sprite, ['center_x', 'height'])
    seq[.2].frame = KeyFrame(center_x=x - 20, height=sprite.height)
    seq[.3].frame = KeyFrame(center_x=opx, height=sprite.height - 30)
    seq[.31].frame = KeyFrame(center_x=opx, height=sprite.height)
    seq[.8].frame = seq[0].frame

    seq[.3].callback = sprite.opponent.take_damage
    seq[.31].callback = delay_set_attribute(sprite, 'special',
                                            sprite.special + 20)
    seq[.8].callback = delay_set_attribute(sprite, 'stamina', 0)

    return sprite, seq
 def start_anim(self):
     if random.random() > 0.85:
         return
     delay1 = random.uniform(0.5, 30.0)
     anim1 = random.uniform(10.0, 20.0)
     delay2 = random.uniform(0.5, 30.0)
     anim2 = random.uniform(10.0, 20.0)
     k1 = KeyFrame(angle=0)
     k2 = KeyFrame(angle=random.choice((-90, -180, -270, -360, 90, 180, 270,
                                        360)))
     seq = Sequence(loop=True)
     # animate to given rotation and then bounce back
     seq.add_keyframe(0, k1)
     seq.add_keyframe(delay1, k1)
     seq.add_keyframe(delay1 + anim1, k2)
     seq.add_keyframe(delay1 + anim1 + delay2, k2)
     seq.add_keyframe(delay1 + anim1 + delay2 + anim2, k1)
     self.animate(seq)
 def play(self, *args, **kwargs):
     seq = Sequence(loop=self.details.loop)
     seq.add_keyframes(*self.details.keyframes.items())
     self.obj.animate(seq)
 def select_keyframe(self, *args, **kwargs):
     self.details.set_current_keyframe(int(
         self.keyframes_radio.active.text))
     seq = Sequence()
     seq.add_keyframe(0, self.details.current_keyframe)
     self.obj.animate(seq)
Exemple #12
0
 def enter_scene(self, previous_scene):
     down = KeyFrame(position=self.actor.position)
     up = KeyFrame(position=(430, 430))
     sequence = Sequence(loop=True)
     sequence.add_keyframes((0, down), (.5, up), (1, down))
     self.actor.animate(sequence)