Stagger causes sprite to jitter back and forth.

Co-authored-by: r3cp3ct <45179536+r3cp3ct@users.noreply.github.com>
Co-authored-by: sigonasr2 <sigonasr2@gmail.com>
main
sigonasr2, Sig, Sigo 3 years ago
parent 6fd0b4feb4
commit ad21b7da11
  1. 18
      src/sig/objects/LevelRenderer.java

@ -18,10 +18,18 @@ import sig.map.Background;
import sig.map.DataTile;
import sig.map.Map;
import sig.map.Tile;
import sig.objects.actor.PhysicsObject;
import sig.objects.actor.RenderedObject;
import sig.objects.actor.State;
import sig.utils.TimeUtils;
public class LevelRenderer extends Object{
final static long staggerJitterWaitTime=TimeUtils.millisToNanos(200);
long staggerTimer=0;
int staggerOffsetX=2;
public LevelRenderer(Panel panel) {
super(panel);
this.setSprite(Sprite.TILE_SHEET);
@ -44,6 +52,9 @@ public class LevelRenderer extends Object{
}
}
}
if (RabiClone.TIME-staggerTimer>staggerJitterWaitTime) {
staggerOffsetX*=-1;
}
}
@Override
@ -138,7 +149,12 @@ public class LevelRenderer extends Object{
}
protected void Draw_Animated_Object(AnimatedObject object, Transform transform){
super.Draw_Animated_Sprite(object.getX()-this.getX()-object.getAnimatedSpr().getWidth()/2, Math.round(object.getY()-this.getY()-object.getAnimatedSpr().getHeight()/2), object.getAnimatedSpr(), object.getCurrentFrame(), transform);
if (object instanceof PhysicsObject) {
PhysicsObject po = (PhysicsObject)object;
super.Draw_Animated_Sprite(object.getX()-this.getX()-object.getAnimatedSpr().getWidth()/2+(po.state==State.STAGGER?staggerOffsetX:0), Math.round(object.getY()-this.getY()-object.getAnimatedSpr().getHeight()/2), object.getAnimatedSpr(), object.getCurrentFrame(), transform);
} else {
super.Draw_Animated_Sprite(object.getX()-this.getX()-object.getAnimatedSpr().getWidth()/2, Math.round(object.getY()-this.getY()-object.getAnimatedSpr().getHeight()/2), object.getAnimatedSpr(), object.getCurrentFrame(), transform);
}
}
private void DrawTile(double x, double y, Tile tile) {

Loading…
Cancel
Save