Whenever the game scrolls to either side, the sprites on my character does not show, and it looks like it is gliding across the screen. Please help me
import greenfoot.*;
public class Erm extends Actor
{
public boolean shouldScroll; // do not need here (or anywhere)
public int playerX; // un-necessary (getX() can be used for this)
// this should be done in ScrollingWorld class
// moving of the actor should be here
public void act()
{
updateShouldScroll(100, 500);
}
// (cont'd) should be done in ScrollingWorld class
public void updateShouldScroll(int minX, int maxX)
{
ScrollingWorld theWorld = (ScrollingWorld) getWorld();
Player player = (Player) theWorld.getPlayer();
playerX = player.getX();
if(playerX <= minX || playerX >= maxX)
{
shouldScroll = true;
}
else
{
shouldScroll = false;
}
if(shouldScroll == true && (playerX >= 400 && Greenfoot.isKeyDown("left")) || (playerX <= 200 && Greenfoot.isKeyDown("right")))
{
shouldScroll = false;
}
}
}import greenfoot.*;
public class Erm extends greenfoot.Actor
{
public void act()
{
if (Greenfoot.isKeyDown("right")) move(/* speed */);
if (Greenfoot.isKeyDown("left")) move(-/* speed */);
}
}private void scroll()
{
if (getObjects(Erm.class).isEmpty()) return;
Actor player = (Actor)getObjects(Erm.class).get(0);
int dx = 0;
if (player.getX() < 100) dx = 100-player.getX();
if (player.getX() > 500) dx = 500-player.getX();
if (dx == 0) return;
// scroll background by 'dx'
// move actors by 'dx'
}