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>
This commit is contained in:
parent
6fd0b4feb4
commit
ad21b7da11
@ -18,10 +18,18 @@ import sig.map.Background;
|
|||||||
import sig.map.DataTile;
|
import sig.map.DataTile;
|
||||||
import sig.map.Map;
|
import sig.map.Map;
|
||||||
import sig.map.Tile;
|
import sig.map.Tile;
|
||||||
|
import sig.objects.actor.PhysicsObject;
|
||||||
import sig.objects.actor.RenderedObject;
|
import sig.objects.actor.RenderedObject;
|
||||||
|
import sig.objects.actor.State;
|
||||||
|
import sig.utils.TimeUtils;
|
||||||
|
|
||||||
public class LevelRenderer extends Object{
|
public class LevelRenderer extends Object{
|
||||||
|
|
||||||
|
final static long staggerJitterWaitTime=TimeUtils.millisToNanos(200);
|
||||||
|
|
||||||
|
long staggerTimer=0;
|
||||||
|
int staggerOffsetX=2;
|
||||||
|
|
||||||
public LevelRenderer(Panel panel) {
|
public LevelRenderer(Panel panel) {
|
||||||
super(panel);
|
super(panel);
|
||||||
this.setSprite(Sprite.TILE_SHEET);
|
this.setSprite(Sprite.TILE_SHEET);
|
||||||
@ -44,6 +52,9 @@ public class LevelRenderer extends Object{
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if (RabiClone.TIME-staggerTimer>staggerJitterWaitTime) {
|
||||||
|
staggerOffsetX*=-1;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -138,8 +149,13 @@ public class LevelRenderer extends Object{
|
|||||||
}
|
}
|
||||||
|
|
||||||
protected void Draw_Animated_Object(AnimatedObject object, Transform transform){
|
protected void Draw_Animated_Object(AnimatedObject object, Transform 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);
|
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) {
|
private void DrawTile(double x, double y, Tile tile) {
|
||||||
Draw_Sprite_Partial(x,y, tile.getSpriteSheetX()*tile.getTileWidth(), tile.getSpriteSheetY()*tile.getTileHeight(), tile.getTileWidth(), tile.getTileHeight(), getSprite(), 0, Transform.NONE);
|
Draw_Sprite_Partial(x,y, tile.getSpriteSheetX()*tile.getTileWidth(), tile.getSpriteSheetY()*tile.getTileHeight(), tile.getTileWidth(), tile.getTileHeight(), getSprite(), 0, Transform.NONE);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user