Editor background drawing should be based on the center of the view area instead of the upper-left corner

Co-authored-by: r3cp3ct <45179536+r3cp3ct@users.noreply.github.com>
Co-authored-by: sigonasr2 <sigonasr2@gmail.com>
This commit is contained in:
sigonasr2, Sig, Sigo 2022-06-24 14:51:48 +00:00 committed by GitHub
parent 9bef6c0caf
commit 099a19c461
4 changed files with 15 additions and 7 deletions

View File

@ -2,11 +2,8 @@ package sig;
import javax.swing.JFrame;
import net.java.games.input.AbstractController;
import net.java.games.input.Controller;
import net.java.games.input.ControllerEnvironment;
import net.java.games.input.ControllerEvent;
import net.java.games.input.ControllerListener;
import java.util.ArrayList;
import java.util.Arrays;

View File

@ -301,7 +301,20 @@ public class EditorRenderer extends LevelRenderer{
dataTileValue.clear();
}break;
}
}
}
@Override
public void drawBackground(byte[] p) {
int screenX = (int)(getX()+RabiClone.BASE_WIDTH/2)/Tile.TILE_WIDTH;
int screenY = (int)(getY()+RabiClone.BASE_HEIGHT/2)/Tile.TILE_HEIGHT;
Background targetBackground = RabiClone.CURRENT_MAP.getBackground(screenX, screenY);
for (int y=0;y<RabiClone.BASE_HEIGHT;y++) {
for (int x=0;x<RabiClone.BASE_WIDTH;x++) {
int index = y*RabiClone.BASE_WIDTH+x;
p[index] = targetBackground.getPixels()[
((y+(int)(getY()*targetBackground.getScrollSpeed()))%targetBackground.getHeight())*targetBackground.getWidth()+((x+(int)(getX()*targetBackground.getScrollSpeed()))%targetBackground.getWidth())
];
}
}
}
}

View File

@ -5,7 +5,6 @@ import sig.engine.Panel;
import sig.engine.Transform;
import sig.objects.actor.AttachableObject;
import sig.objects.actor.PhysicsObject;
import sig.objects.actor.State;
import sig.engine.objects.AnimatedObject;
import sig.engine.objects.Object;

View File

@ -5,7 +5,6 @@ import sig.engine.Panel;
import sig.engine.Transform;
import sig.objects.actor.AttachableObject;
import sig.objects.actor.PhysicsObject;
import sig.objects.actor.State;
import sig.engine.objects.AnimatedObject;
import sig.engine.objects.Object;