-
Alex Saveau authored
It needs to be built-in because otherwise you have to completely recreate the animation to change the speed.
Unverified454bcd00
CHANGELOG.md 6.92 KiB
Changelog
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
[Unreleased]
Added
- Add
is_forward()
andis_backward()
convenience helpers toTweeningDirection
. - Add
Tween::set_direction()
andTween::with_direction()
which allow configuring the playback direction of a tween, allowing to play it backward from end to start. - Support dynamically changing an animation's speed with
Animator::set_speed
[0.4.0] - 2022-04-16
Changed
- Compatible with Bevy 0.7
- Better dependencies: Introduced features
bevy_sprite
andbevy_ui
taking a dependency on the same-named crates of Bevy, and removed the forced dependency onbevy/render
. The new features are enabled by default, for discoverability, and only impact the prebuilt lenses. The library now builds without any Bevy optional feature.
[0.3.3] - 2022-03-05
Added
- Added new built-in rotation lenses based on angle interpolation, to allow rotation animations larger than a half turn:
TransformRotateXLens
TransformRotateYLens
TransformRotateZLens
TransformRotateAxisLens
[0.3.2] - 2022-02-24
Added
- Implemented
Default
forTweeningType
(=Once
),EaseMethod
(=Linear
),TweeningDirection
(=Forward
). - Added
Tweenable::is_looping()
,Tweenable::set_progress()
,Tweenable::times_completed()
, andTweenable::rewind()
. - Added
Animator::set_progress()
,Animator::progress()
,Animator::stop()
, andAnimator::rewind()
. - Added
AssetAnimator::set_progress()
,AssetAnimator::progress()
,AssetAnimator::stop()
, andAssetAnimator::rewind()
. - Added the
TweenCompleted
event, raised when aTween<T>
completed its animation if that feature was previously activated withset_completed_event()
orwith_completed_event()
.
Changed
-
TweenState
now contains only two states:Active
andCompleted
. Looping animations are always active, and non-looping ones are completed once they reach their end point. - Merged the
started
andended
callbacks into acompleted
one (Tween::set_completed()
andTween::clear_completed()
), which is invoked when the tween completes a single iteration. That is, for non-looping animations, whenTweenState::Completed
is reached. And for looping animations, once per iteration (going from start -> end, or from end -> start).
Removed
- Removed
Tweenable::stop()
. Tweenables do not have a "stop" state anymore, they are only either active or completed. The playback state is only relevant on theAnimator
orAssetAnimator
which controls them.
Fixed
- Fixed a bug with the alpha value of colored lenses being too large (
TextColorLens
,SpriteColorLens
,ColorMaterialColorLens
).
[0.3.1] - 2022-02-12
Added
- Add user callbacks on tween started (
Tween::set_started
) and ended (Tween::set_ended
). - Implement
Default
forAnimatorState
asAnimatorState::Playing
. - Added
Animator::with_state()
andAssetAnimator::with_state()
, builder-like functions to override the defaultAnimatorState
. - Added
Tween::is_looping()
returning true for all butTweeningType::Once
. - Added the
Tweenable<T>
trait, implemented by theTween<T>
andDelay<T>
animation, and by theTracks<T>
andSequence<T>
animation collections. - Added
IntoBoxDynTweenable<T>
, a trait to convert aTweenable<T>
trait object into a boxed variant. - Publicly exposed
Sequence<T>
, a sequence ofTweenable<T>
running one after the other. - Publicly exposed
Tracks<T>
, a collection ofTweenable<T>
running in parallel. - Publicly exposed
TweenState
, the playback state of a singleTweenable<T>
item. - Added
Tween<T>::then()
andSequence<T>::then()
to append aTweenable<T>
to a sequence (creating a new sequence in the case ofTween<T>::then()
). - Added
tweenable()
andtweenable_mut()
on theAnimator<T>
andAssetAnimator<T>
to access their top-levelTweenable<T>
. - Implemented
Default
forAnimator<T>
andAssetAnimator<T>
, creating an animator without any tweenable item (no-op). - Added
Delay
tweenable for a time delay between other tweens. - Added a new
menu
example demonstrating in particular theDelay
tweenable.
Changed
- Moved tween duration out of the
TweeningType
enum, which combined with the removal of the "pause" feature in loops makes it a C-like enum. - The
Sequence<T>
progress now reports the progress of the total sequence. Individual sub-tweenables cannot be accessed. - Updated the
sequence
example to add some text showing the current sequence progress. - Modified the signature of
new()
forAnimator<T>
andAssetAnimator<T>
to take a singleTweenable<T>
instead of trying to build aTween<T>
internally. This allows passing anyTweenable<T>
as the top-level animatable item of an animator, and avoids the overhead of maintaining aTracks<T>
internally in each animator when the most common use case is likely to use a singleTween<T>
or aSequence<T>
without parallelism.
Removed
- Removed the "pause" feature in-between loops of
TweeningType::Loop
andTweeningType::PingPong
, which can be replaced if needed by a sequence including aDelay
tweenable. RemovedTween::is_paused()
. - Removed
new_single()
andnew_seq()
on theAnimator<T>
andAssetAnimator<T>
. Users should explicitly create aTween<T>
orSequence<T>
instead, and usenew()
.
Fixed
- Fix missing public export of
component_animator_system()
andasset_animator_system()
preventing the animation of all but the built-in items.
[0.3.0] - 2022-01-28
Added
- Add
Tween<T>
describing a single tween animation, independently of its target (asset or component). - Add
Tween<T>::is_paused()
to query when a tweening animation is in its pause phase, if any. - Add
Tween<T>::direction()
to query the playback direction of a tweening animation (forward or backward). - Add
Tween<T>::progress()
to query the progres ratio in [0:1] of a tweening animation. - Enable multiple lenses per animator via "tracks", the ability to add multiple tween animations running in parallel on the same component.
- Enable sequences of tween animations running serially, one after the other, for each track of an animator, allowing to create more complex animations.
Fixed
- Perform spherical linear interpolation (slerp) for
Quat
rotation ofTransform
animation viaTransformRotationLens
, instead of mere linear interpolation leaving the quaternion non-normalized.
[0.2.0] - 2022-01-09
Changed
- Update to Bevy 0.6
- Update to rust edition 2021
- Force Cargo resolver v2
Added
- Added built-in lens
SpriteColorLens
, since the color of aSprite
is now an intrinsic property of the component in Bevy 0.6, and does not useColorMaterial
anymore.
[0.1.0] - 2021-12-24
Initial version for Bevy 0.5