Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

pygame-animation

Package Overview
Dependencies
Maintainers
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

pygame-animation

A package for managing animations of pygame surfaces

  • 1.0.0
  • PyPI
  • Socket score

Maintainers
1

Pygame-Animation

This package provides a framework for managing animations using various smoothing techniques. The AnimationManager class is designed to handle the setup and progression of animations, allowing for smooth transitions and customizable easing methods.

Features

1. Customizable Smoothing:

Use different smoothing methods to control the animation's easing.

2. Flexible Activation:

Easily manage the activation and deactivation of animations.

3. Abstract Methods for Custom Animations:

Implement your own animations by extending the AnimationManager class.

Installation

Ensure that the module and its dependencies are included in your project. No additional installation steps are required.

pip install pygame-animations

Usage

Importing the Classes

from smoothing_methods import EaseOutSuperFastSmoothing, SmoothingInterface
from smooth_animation import SmoothAnimation
from target_manager import TargetManager
from animation_manager import AnimationManager"

Creating a Custom Animation Manager

To create a custom animation, extend the AnimationManager class and implement the abstract methods animate, activated_animation_setup, and deactivated_animation_setup.

class MyCustomAnimationManager(AnimationManager):
    """
    A custom animation manager for manipulating the position of a surface.

    Args:
        surface: The surface object to be animated.
    """
    def __init__(self, surface):
        super().__init__()
        self.surface = surface
        
    def animate(self):
        """Animate the surface's position."""
        self.surface.set_position(self.current_value)

    def activated_animation_setup(self):
        """
        Set up the animation for the activated state.

        Initial position of the surface: 10
        Target position of the surface: 20
        """
        self.set_target(current_value=10, target_value=20)

    def deactivated_animation_setup(self):
        """
        Set up the animation for the deactivated state.

        Initial position of the surface: 20
        Target position of the surface: 10
        """
        self.set_target(current_value=20, target_value=10)

Usage example

animation_manager = MyCustomAnimationManager(activated=False, percentage_per_iteration=0.05)
animation_manager.check_for_animation(activated=True)

Class Descriptions

AnimationManager

The AnimationManager class is an abstract base class for managing animations. It handles the setup and progression of animations using a SmoothAnimation instance.

Initialization

AnimationManager(activated: bool = False, percentage_per_iteration: float = 0.03, smoothing_method: SmoothingInterface = EaseOutSuperFastSmoothing())

activated:

Initial activation state of the animation (default: False).

percentage_per_iteration:

The percentage change per iteration for the animation (default: 0.03).

smoothing_method:

The smoothing method to use for the animation (default: EaseOutSuperFastSmoothing).

Smoothing Methods

This module also provides various smoothing methods to control the easing of animations. Each smoothing method implements the SmoothingInterface and provides a static method smooth_in_animation to calculate the smoothed value based on the elapsed time.

LinearSmoothing

Description:

Linear smoothing, returns the input time directly.

EaseOutQuadSmoothing

Description:

Quadratic ease-out smoothing.

QuadraticSmoothing

Description:

Quadratic smoothing with different behavior based on time.

ParametricSmoothing

Description:

Parametric smoothing using a specific parametric formula.

EaseOutQuintSmoothing

Description:

Quintic ease-out smoothing.

EaseOutCubicSmoothing

Description:

Cubic ease-out smoothing.

EaseOutBackSmoothing

Description:

Back ease-out smoothing with overshoot.

EaseInOutElasticSmoothing

Description:

Elastic ease-in-out smoothing with a bounce effect.

EaseOutElasticSmoothing

Description:

Elastic ease-out smoothing with a bounce effect.

EaseOutExpoSmoothing

Description:

Exponential ease-out smoothing.

EaseOutSuperFastSmoothing

Description:

Super fast ease-out smoothing, starts quickly then slows down exponentially.

Contributing

Contributions are welcome! Please open an issue or submit a pull request if you have suggestions for improvements or new features.

License

This project is licensed under the MIT License.

Keywords

FAQs


Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc