Follows: #99 and #718
We have a new "frame_prediction" example which shows a naïve implementation of frame prediction built in user-code. This ticket will move the predictive positioning code into melonJS proper.
Some items to consider. All of these are in relation to the time delta of any skipped update:
This short spec will probably be pretty unstable until some edge cases are resolved. The edges are:
me.sys.updatesPerFrame === me.sys.fps:
update overruns allocated compute time
draw overruns allocated compute time
update and draw overrun allocated compute time together (but not alone)
me.sys.updatesPerFrame < me.sys.fps:
update overruns allocated compute time
draw overruns allocated compute time
update and draw overrun allocated compute time together (but not alone)
Where "allocated compute time" is equivalent to 1000 / me.sys.fps
Follows: #99 and #718
We have a new "frame_prediction" example which shows a naïve implementation of frame prediction built in user-code. This ticket will move the predictive positioning code into melonJS proper.
Some items to consider. All of these are in relation to the time delta of any skipped update:
me.Entity.drawshould extrapolate the entity positionme.AnimationSheet.drawshould handle the animation updates (in place ofupdate)me.TMXTileset.drawshould handle the animation updates (in place ofupdate)me.Tween.drawshould handle the tween updates (in place ofupdate) even though it will not draw anythingThis short spec will probably be pretty unstable until some edge cases are resolved. The edges are:
me.sys.updatesPerFrame === me.sys.fps:updateoverruns allocated compute timedrawoverruns allocated compute timeupdateanddrawoverrun allocated compute time together (but not alone)me.sys.updatesPerFrame < me.sys.fps:updateoverruns allocated compute timedrawoverruns allocated compute timeupdateanddrawoverrun allocated compute time together (but not alone)Where "allocated compute time" is equivalent to
1000 / me.sys.fps