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' }