Hi,
I am looking for this problem now for hours and it must be something easy and stupid.. I got 1 background that i can use 2 times in my scrolling, but when i try it for a 3th time, it doesnt seem to work?? I can scroll from img0 into img1 but than again he returns to img0 and in a loop..., i just want him to run into img0, than img1, than img2, and than again into img0, img1,.....
I added the following code into my background
import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)
import java.util.List;
/**
* Write a description of class MyWorld here.
*
* @author (your name)
* @version (a version number or a date)
*/
public class MyWorld extends World
{
private Background img0, img1, img2;
// Gebruik maken van een array voor het plaatsen van de X-coördinaten van de bomen
private int[] GeleBoomX = { 300, 700, 1200, 2000, 3000, 3500, 4000, 4500 }; // de Coordinaten waar de bomen zich gaan bevinden.
private int[] SteenX = { 340, 600, 870, 1400, 1800, 3400 }; // de Coordinaten waar de stenen zich gaan bevinden.
private int[] BlockX = { 1000 };
private int[] Monster1X = { 380 };
private int manX;
/**
* Constructor for objects of class MyWorld.
*
*/
public MyWorld()
{
// Create a new world with 1000x400 cells with a cell size of 1x1 pixels. False zorgt ervoor dat het mannetje de rand niet raakt.
super(1000, 400, 1, false); // True is bounded en false is unbounded
img0 = new Background(); // maakt een achtergrond aan
addObject( img0, getWidth()/2, getHeight()/2 ); // hierdoor wordt de image mooi gecentreerd in de wereld
img1 = new Background(); // maakt een achtergrond aan MAAR aan de rechterkant van de afbeelding die niet zichtbaar is maar gescrollt
addObject( img1, getWidth() + getWidth()/2 , getHeight()/2 );
img2 = new Background(); // maakt een achtergrond aan MAAR aan de rechterkant van de afbeelding die niet zichtbaar is maar gescrollt
addObject( img2, getWidth()*2 + getWidth()/2 , getHeight()/2 );
addObject(new Hoofdplatform(), 65, 385);
addObject(new Hoofdplatform(), 193, 385);
addObject(new Hoofdplatform(), 321, 385);
addObject(new Hoofdplatform(), 449, 385);
addObject(new Hoofdplatform(), 577, 385);
addObject(new Hoofdplatform(), 705, 385);
addObject(new Hoofdplatform(), 833, 385);
addObject(new Hoofdplatform(), 961, 385);
addObject(new Hoofdplatform(), 1089, 385);
addObject(new Hoofdplatform(), 1217, 385);
addObject(new Hoofdplatform(), 1345, 385);
addObject(new Hoofdplatform(), 1473, 385);
addObject(new Hoofdplatform(), 1601, 385);
for(int t=0; t<GeleBoomX.length; t++) { // GeleBoom start bij 0 en gaat altijd 1 omhoog( zie lijst bovenaan ). als de boom kleiner is dan de lengte van de lijst blijft hij opbouwen tot hij het einde bereikt.
addObject(new GeleBoom(), GeleBoomX[t], 331);
}
for(int t=0; t<SteenX.length; t++) { // GeleBoom start bij 0 en gaat altijd 1 omhoog( zie lijst bovenaan ). als de boom kleiner is dan de lengte van de lijst blijft hij opbouwen tot hij het einde bereikt.
addObject(new Steen(), SteenX[t], 357);
}
for(int t=0; t<Monster1X.length; t++) { // GeleBoom start bij 0 en gaat altijd 1 omhoog( zie lijst bovenaan ). als de boom kleiner is dan de lengte van de lijst blijft hij opbouwen tot hij het einde bereikt.
addObject(new Monster1(), Monster1X[t], 347);
}
for(int t=0; t<BlockX.length; t++) { // GeleBoom start bij 0 en gaat altijd 1 omhoog( zie lijst bovenaan ). als de boom kleiner is dan de lengte van de lijst blijft hij opbouwen tot hij het einde bereikt.
addObject(new Block(), BlockX[t], 320);
}
addObject(new mannetje(), 80, 346); // Deze moet onderaan staan, zodat het mannetje niet vermenigvuldigd wordt in de methode hierboven. Hierdoor gaat het mannetje VOOR de bomen komen en niet erachter lopen.
}
public void act()
{
if(!getObjects(mannetje.class).isEmpty()){ // Als de wereld NIET leeg is, gaat het mannetje de getX aanroepen van het mannetje.
Actor man = getObjects(mannetje.class).get(0);
manX = man.getX();
if (Greenfoot.isKeyDown("right") && manX > 400) {
img0.scroll();
img1.scroll();
img2.scroll();
List<GeleBoom> Gelebomen = getObjects(GeleBoom.class);
for( int t=0; t<Gelebomen.size(); t++) {
GeleBoom geleboom = Gelebomen.get(t); // Alles in java = Object
geleboom.scroll();
}
List<Steen> Stenen = getObjects(Steen.class);
for( int t=0; t<Stenen.size(); t++) {
Steen steen = Stenen.get(t); // Alles in java = Object
steen.scroll();
}
List<Monster1> Monsters1 = getObjects(Monster1.class);
for( int t=0; t<Monsters1.size(); t++) {
Monster1 monster1 = Monsters1.get(t); // Alles in java = Object
monster1.scroll();
}
List<Block> Blocken = getObjects(Block.class);
for( int t=0; t<Blocken.size(); t++) {
Block block = Blocken.get(t); // Alles in java = Object
block.scroll();
}
}
}
}
}
private void scrolling()
{
if( getX() < -getImage().getWidth()/2 ) {
setLocation( getWorld().getWidth() + 295, getY() );
}
setLocation( getX()-5, getY() );
}
