def two_long_basic_bullet_bursts_big_bullet_scatter(cls):
     particle_emitter_straight = ParticleEmitterComponent(
         BasicBullet,
         10,
         Vector3D(-15, 0, 0),
         speed_variability=0,
         direction_variability=0)
     particle_emitter_scatter = ParticleEmitterComponent(
         BigBullet,
         40,
         Vector3D(-20, 0, 0),
         speed_variability=0,
         direction_variability=60)
     shoot_pattern_node_list = [
         ShootPatternComponentNode(None, 3),
     ] + [
         ShootPatternComponentNode(particle_emitter_straight, 2),
         ShootPatternComponentNode(None, 1),
         ShootPatternComponentNode(particle_emitter_straight, 2),
         ShootPatternComponentNode(None, 3),
         ShootPatternComponentNode(particle_emitter_scatter, 2),
     ] + [
         ShootPatternComponentNode(particle_emitter_straight, 2),
         ShootPatternComponentNode(None, 1),
         ShootPatternComponentNode(particle_emitter_straight, 2),
         ShootPatternComponentNode(None, 3),
         ShootPatternComponentNode(particle_emitter_scatter, 2),
     ] * 60
     return ShootPatternComponent(shoot_pattern_node_list)
Exemplo n.º 2
0
    def test_applying_move_component_with_one_node_to_actor(self):
        actor = Actor()
        node = MoveComponentNode(Vector3D(10, 0, 0), 2)
        actor.add_component(MoveComponent([node]))

        actor.end_tick()

        assert actor.move_vector == Vector3D(10, 0, 0)
Exemplo n.º 3
0
    def test_applying_move_component_with_many_nodes_to_actor(self):
        actor = Actor()
        node1 = MoveComponentNode(Vector3D(10, 0, 0), 2)
        node2 = MoveComponentNode(Vector3D(0, 5, 0), 2)
        actor.add_component(MoveComponent([node1, node2]))

        actor.end_tick()
        actor.end_tick()
        actor.end_tick()

        assert actor.move_vector == Vector3D(0, 5, 0)
Exemplo n.º 4
0
    def test_keep_last_applied_move_component_node(self):
        actor = Actor()
        node1 = MoveComponentNode(Vector3D(10, 0, 0), 2)
        node2 = MoveComponentNode(Vector3D(0, 5, 0), 2)
        actor.add_component(MoveComponent([node1, node2]))

        actor.end_tick()
        actor.end_tick()
        actor.end_tick()
        actor.end_tick()

        assert actor.move_vector == Vector3D(0, 5, 0)
Exemplo n.º 5
0
 def from_center_static_go_down_up_down_twice_then_ram(cls):
     return MoveComponent([
         MoveComponentNode(Vector3D(-5, 0, 0), 3),
     ] + [
         MoveComponentNode(Vector3D(0, -8, 0), 2),
         MoveComponentNode(Vector3D(0, 8, 0), 4),
         MoveComponentNode(Vector3D(0, -8, 0), 2),
         MoveComponentNode(Vector3D(0, 0, 0), 2)
     ] + [
         MoveComponentNode(Vector3D(0, -8, 0), 2),
         MoveComponentNode(Vector3D(0, 8, 0), 4),
         MoveComponentNode(Vector3D(0, -8, 0), 2),
     ] + [MoveComponentNode(Vector3D(-12, 0, 0), 999)])
 def basic_bullet(cls, bullets_per_second, direction_variability,
                  burst_duration_seconds, pause_duration_seconds):
     particle_emitter = ParticleEmitterComponent(
         BasicBullet,
         bullets_per_second,
         Vector3D(-15, 0, 0),
         speed_variability=0,
         direction_variability=direction_variability)
     shoot_pattern_node_list = [
         ShootPatternComponentNode(particle_emitter,
                                   burst_duration_seconds),
         ShootPatternComponentNode(None, pause_duration_seconds),
     ] * 999
     return ShootPatternComponent(shoot_pattern_node_list)
Exemplo n.º 7
0
    def __init__(self):
        super().__init__(Explosion.lifespan_seconds)

        body = PrimitiveShapes.star4arms(3, 0.5, rotation=random.randrange(0, 89))
        body_component = PolygonComponent(body)
        body_component.add_component(ColorComponent(RGB.random()))
        body_component.add_component(OutlineComponent(RGB.random(), thickness=1))
        self.add_component(body_component)

        body = PrimitiveShapes.octogon(2, rotation=random.randint(0, 89))
        body_component = PolygonComponent(body)
        body_component.add_component(ColorComponent(RGB.random()))
        body_component.add_component(OutlineComponent(RGB.random(), thickness=1))
        self.add_component(body_component)

        self.add_component(ParticleEmitterComponent(
            ExplosionParticle,
            100,
            Vector3D(5, 0, 0),
            speed_variability=0.5,
            direction_variability=360
        ))

        self.sound_played = False
Exemplo n.º 8
0
 def from_center_go_straight(cls):
     return MoveComponent([MoveComponentNode(Vector3D(-5, 0, 0), 999)])
Exemplo n.º 9
0
 def from_bottom_go_up_down_straight(cls):
     return MoveComponent([
         MoveComponentNode(Vector3D(-4, 6, 0), 3),
         MoveComponentNode(Vector3D(-4, -6, 0), 1.5),
         MoveComponentNode(Vector3D(-5, 0, 0), 999)
     ])