-
Notifications
You must be signed in to change notification settings - Fork 5
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Lazy KeyFrames + Speed Controlled Keyframes + Pong Example #8
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Lazy Keyframes: Lets an animation pick up where another previous animation left off. Speed Controlled Keyframes: Control an animation by defining the speed that you would like it to animate at, rather than the time which it should have its value at. Pong Example: A game of pong. Also an example of the previous two new features.
1. Optimizes the `start_at` logic. Caches keyframe times, rather than recalculating them for each `Frame`. 2. `Frame` now requires it's index in it's keyframe's chain. 3. Speed controlled frames actually work.
This is seen in the pong example. The ball now moves properly.
Most objectives on this PR have been solved. A few missing ones:
|
Using too large of a unit was causing the animations to jump and/or seemingly animate at different rates. This was because the animation speed was defined using Seconds, so any granularity less than seconds was being dropped. Using per_millis was the fix.
Was left over from a previous API.
With recent changes to improve the `set_chain` and `start_at` logic in `timeline.rs` the locgic wasn't iterating immedialy. This meant that we had to collect the iterator into a vec in `set_chain`. Which meant we were heap allocating twice for each keyframe in the chain. By using `vec!` and passign a vector to build `struct Chain`, that allocation can be reused. Meaning only one heap allocation.
Cleans up a lot of the imports for cosmic-time aniomation building.
Simplifies the animation code in the `view()`
This is for the goal of cleaning up the code code imports. Building animations is now a lot cleaner.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Lazy Keyframes:
Lets an animation pick up where another previous animation
left off.
Speed Controlled Keyframes:
Control an animation by defining the speed that you would like
it to animate at, rather than the time which it should have
its value at.
Pong Example:
A game of pong. Also an example of the previous two new
features.