BouncyBalls
Quick Start
from terminaltexteffects.effects.effect_bouncyballs import BouncyBalls
effect = BouncyBalls("YourTextHere")
with effect.terminal_output() as terminal:
for frame in effect:
terminal.print(frame)
Characters fall from the top of the canvas as bouncy balls before settling into place.
Classes:
Name | Description |
---|---|
BouncyBalls |
Characters fall from the top of the canvas as bouncy balls before settling into place. |
BouncyBallsConfig |
Configuration for the BouncyBalls effect. |
BouncyBallsIterator |
Iterator for the BouncyBalls effect. Does not normally need to be called directly. |
BouncyBalls
Bases: BaseEffect[BouncyBallsConfig]
Characters fall from the top of the canvas as bouncy balls before settling into place.
Attributes:
Name | Type | Description |
---|---|---|
effect_config |
BouncyBallsConfig
|
Configuration for the effect. |
terminal_config |
TerminalConfig
|
Configuration for the terminal. |
Source code in terminaltexteffects/effects/effect_bouncyballs.py
__init__(input_data)
Initialize the effect with the provided input data.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
input_data |
str
|
The input data to use for the effect. |
required |
BouncyBallsConfig
dataclass
Bases: ArgsDataClass
Configuration for the BouncyBalls effect.
Attributes:
Name | Type | Description |
---|---|---|
ball_colors |
tuple[Color, ...]
|
Tuple of colors from which ball colors will be randomly selected. If no colors are provided, the colors are random. |
ball_symbols |
tuple[str, ...] | str
|
Tuple of symbols to use for the balls. |
final_gradient_stops |
tuple[Color, ...]
|
Tuple of colors for the final color gradient. If only one color is provided, the characters will be displayed in that color. |
final_gradient_steps |
tuple[int, ...] | int
|
Tuple of the number of gradient steps to use. More steps will create a smoother and longer gradient animation. Valid values are n > 0. |
final_gradient_direction |
Direction
|
Direction of the final gradient. |
ball_delay |
int
|
Number of frames between ball drops, increase to reduce ball drop rate. Valid values are n > 0. |
movement_speed |
float
|
Movement speed of the characters. Valid values are n > 0. |
easing |
EasingFunction
|
Easing function to use for character movement. |
Source code in terminaltexteffects/effects/effect_bouncyballs.py
29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 |
|
ball_colors: tuple[Color, ...] = ArgField(cmd_name=['--ball-colors'], type_parser=argvalidators.ColorArg.type_parser, metavar=argvalidators.ColorArg.METAVAR, nargs='+', default=(Color('d1f4a5'), Color('96e2a4'), Color('5acda9')), help='Space separated list of colors from which ball colors will be randomly selected. If no colors are provided, the colors are random.')
class-attribute
instance-attribute
tuple[Color, ...] : Tuple of colors from which ball colors will be randomly selected. If no colors are provided, the colors are random.
ball_delay: int = ArgField(cmd_name='--ball-delay', type_parser=argvalidators.NonNegativeInt.type_parser, default=7, metavar=argvalidators.NonNegativeInt.METAVAR, help='Number of frames between ball drops, increase to reduce ball drop rate.')
class-attribute
instance-attribute
int : Number of frames between ball drops, increase to reduce ball drop rate.
ball_symbols: tuple[str, ...] = ArgField(cmd_name='--ball-symbols', type_parser=argvalidators.Symbol.type_parser, nargs='+', default=('*', 'o', 'O', '0', '.'), metavar=argvalidators.Symbol.METAVAR, help='Space separated list of symbols to use for the balls.')
class-attribute
instance-attribute
tuple[str, ...] | str : Tuple of symbols to use for the balls.
final_gradient_direction: Gradient.Direction = ArgField(cmd_name='--final-gradient-direction', type_parser=argvalidators.GradientDirection.type_parser, default=Gradient.Direction.DIAGONAL, metavar=argvalidators.GradientDirection.METAVAR, help='Direction of the final gradient.')
class-attribute
instance-attribute
Gradient.Direction : Direction of the final gradient.
final_gradient_steps: tuple[int, ...] | int = ArgField(cmd_name=['--final-gradient-steps'], type_parser=argvalidators.PositiveInt.type_parser, nargs='+', default=12, metavar=argvalidators.PositiveInt.METAVAR, help='Space separated, unquoted, list of the number of gradient steps to use. More steps will create a smoother and longer gradient animation.')
class-attribute
instance-attribute
tuple[int, ...] | int : Int or Tuple of ints for the number of gradient steps to use. More steps will create a smoother and longer gradient animation.
final_gradient_stops: tuple[Color, ...] = ArgField(cmd_name=['--final-gradient-stops'], type_parser=argvalidators.ColorArg.type_parser, nargs='+', default=(Color('f8ffae'), Color('43c6ac')), metavar=argvalidators.ColorArg.METAVAR, help='Space separated, unquoted, list of colors for the character gradient (applied from bottom to top). If only one color is provided, the characters will be displayed in that color.')
class-attribute
instance-attribute
tuple[Color, ...] : Tuple of colors for the final color gradient. If only one color is provided, the characters will be displayed in that color.
movement_easing: easing.EasingFunction = ArgField(cmd_name='--movement-easing', type_parser=argvalidators.Ease.type_parser, default=easing.out_bounce, help='Easing function to use for character movement.')
class-attribute
instance-attribute
easing.EasingFunction : Easing function to use for character movement.
movement_speed: float = ArgField(cmd_name='--movement-speed', type_parser=argvalidators.PositiveFloat.type_parser, default=0.25, metavar=argvalidators.PositiveFloat.METAVAR, help='Movement speed of the characters. ')
class-attribute
instance-attribute
float : Movement speed of the characters.