Metadata-Version: 2.1
Name: bruhanimate
Version: 0.1.64
Summary: ASCII Terminal Animation Package
Home-page: https://github.com/ethanlchristensen/bruhanimate
Author: Ethan Christensen
Author-email: ethanlchristensen@outlook.com
Keywords: python,terminal,terminal-animation,bruhanimate
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: Programming Language :: Python :: 3
Classifier: Operating System :: Unix
Classifier: Operating System :: MacOS :: MacOS X
Classifier: Operating System :: Microsoft :: Windows
Description-Content-Type: text/markdown
License-File: LICENSE
License-File: COPYING


# bruhanimate

<div>

<img src="https://i.ibb.co/TwssymP/BRUHANIMA.gif" alt="BRUHANIMA" border="0">



<img src="https://i.ibb.co/p3mbKb1/plas.gif" alt="plas" border="0">



<img src="https://i.ibb.co/pR49kL6/noises.gif" alt="noises" border="0">

</div>



[![Supported Python versions](https://img.shields.io/pypi/pyversions/termcolor.svg?logo=python&logoColor=FFE873)](https://pypi.org/project/bruhanimate/)



bruhanimate offers a series of files to aid in rendering out animations in the terminal. This is heavily inspisred by the <a href="https://github.com/peterbrittain/asciimatics">Asciimatics</a> package. While Asciimatics is the end-all be-all for termianl animations, I figured it would be good practice to go ahead and attempt something like this myself.



## Installation



### From PyPI



```bash

python -m pip install --upgrade bruhanimate

```



### From source



```bash

git clone https://github.com/ethanlchristensen/bruhanimate

cd bruhanimate

python -m pip install .

```



# Usage

Here are some examples on how bruhanimate might be used. <br/><br/>

```py



"""

Here is a simple program that uses the EffectRenderer to render out one

of the prebuilt effects to the terminal.

"""

from bruhanimate.bruhrenderer import *

from bruhanimate.bruhscreen import Screen

import bruhanimate.images as images

import sys



def demo(screen, img, frames, time, effect_type, background, transparent):

    

    # CREATE THE RENDERER

    renderer = CenterRenderer(screen, frames, time, img, effect_type, background, transparent)



    # SET EFFECT ATTRIBUTES

    renderer.update_smart_transparent(True)

    renderer.effect.update_color(True)

    renderer.effect.update_intensity(100)



    # RUN THE ANIMATION

    renderer.run()



    # CATCH THE END WITH INPUT() --> for Win-Systems --> Ctl-C for Unix-Systems

    input()





def main():

    Screen.show(demo, args=(images.get_image("TWOPOINT"), 300, 0, "noise", " ", False))







if __name__ == "__main__":

    main()



```



```py



"""

Here is another example that makes use of line drawing to draw a 3-D triangle

"""

from bruhanimate.bruhrenderer import *

from bruhanimate.bruhscreen import Screen

import bruhanimate.images as images



def demo(screen, img, frames, time, effect, background, transparent):

    # CREATE THE RENDERER

    renderer = PanRenderer(screen, frames, time, img, effect, background, transparent, loop=True)

    

    # REGISTER THE LINES - LET'S MAKE A DECENT 3D TRIANGLE

    renderer.effect.add_line((15, 15), (30, 30))

    renderer.effect.add_line((30, 30), (50, 20))

    renderer.effect.add_line((50, 20), (15, 15))



    renderer.effect.add_line((30,30), (32, 22))

    renderer.effect.add_line((32, 22), (15, 15))

    renderer.effect.add_line((32, 22), (50, 20))





    # RUN THE ANIMATION

    renderer.run(end_message=False)



    # CATCH THE END WITH INPUT() ON WINDOWS

    input()



image = images.text_to_image("HELLO WORLD!", padding_top_bottom=1, padding_left_right=3)

Screen.show(demo, args=(image, 500, 0.05, "drawlines", " ", True))



```

