Various improvements to Motion system#884
Merged
mucaho merged 6 commits intocraftyjs:developfrom Apr 11, 2015
Merged
Conversation
The motion system uses non-user friendly conversion between pixels and the metric system. This commit changes all values to be in pixels/frame and degrees/frame so that the user can easily access and modify motion values without the need of external or internal conversion between the units of measurement. This commit also introduces the "FPSChange" event.
Make Twoway and Fourway constructors callable without parameters. Simplify and streamline Twoway implementation.
When gravity constant is changed before gravity is started, an invalid gravity state occurs. This commit fixes this case.
35820e5 to
3fa32d0
Compare
Improve docs of Supportable and Twoway with examples of realistic, custom land and jump behavior.
Fix bug occurring when multiple ground entities overlap the entitiy, which leads to problems registering the actual ground entity. Make ground property have property getter accessor rather than a custom function. Streamline ground detection to match Collision.hit implementation.
Contributor
Author
|
The contents of this patch have been tested in practice and are part of implementing the Motion system, so going ahead and merging this. |
mucaho
pushed a commit
that referenced
this pull request
Apr 11, 2015
Various improvements to Motion system
Closed
This file contains hidden or 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
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.
Continuation of #876
Now when user sets
vx = 1, the entity will move1pxeach frame, depending on the current target fpsCrafty.timer.FPS(). Note that this should also work in the cases when user selects differenttimer.stepMode(e.g.variable), as the calculation is still done usingdtand adtFactorderived from the desired target FPS.gravityConstbefore activatinggravity()leads to inconsistent stateSupportable,TwowayandMultiwayFuture additions
this.y = hit._y - this._h; // snap entity to ground object.As you can see, this won't snap correctly with the polygon hitbox being larger/smaller than the actual entity. Should the user be allowed to specify his own snap function?
terminal velocitythat defaults to the velocity caused by gravity after 12 frames) and document for user that he should make his platforms at leastterminal velocity + 1high -max(entity._h, platform._h) > terminal velocity