The tutorial at http://wiki.netbeans.org/CreatingJavaMEGamesWithGameBuilder helped me make a simple game with 2 levels, The first level being the forest level and the second one being the Desert level. I managed to make both these level work. As soon as the sprite Karel moves to the bottom right edge of level 1, level 2 is displayed, which also works fine. But now Ive made a third scene which I want to start as soon as the sprite Karel reaches the bottom right of the level 2 (i.e desert scene)
I know that this portion of the code makes the level 2 load as soon as Karel reaches the bottom right.
public void run() {
Graphics g = getGraphics();
while (!this.interrupted) {
//switch to 'Desert' scene once the main sprite moves
//to the bottom right corner of scene 'Forest'
if (this.spriteKarel.getX() >= 340 && this.spriteKarel.getY() >= 340) {
try {
this.ground = this.gameDesign.getSand();
this.colliders = new TiledLayer[] {};
//remove all current layers
while (this.lm.getSize() > 0) {
Layer l = this.lm.getLayerAt(0);
this.lm.remove(l);
}
//load the 'Desert' scene
this.gameDesign.updateLayerManagerForDesert(this.lm);
} catch (IOException e) {
e.printStackTrace();
}
//reset the viewport
this.viewPortX = 0;
this.viewPortY = 0;
this.lm.setViewWindow(this.viewPortX, this.viewPortY, this.getWidth(), this.getHeight());
this.lastDirection = -1;
}
But how can I do the same for level 3 to load? I tried adding the following code in the run function but it ran level 3 instead of level 2
if (this.spriteKarel.getX() >= 300 && this.spriteKarel.getY() >= 300) {
try {
this.ground = this.gameDesign.getSide();
this.colliders = new TiledLayer[] {};
//remove all current layers
while (this.lm.getSize() > 0) {
Layer l = this.lm.getLayerAt(0);
this.lm.remove(l);
}
//load the 'Wall' scene
this.gameDesign.updateLayerManagerForWall(this.lm);
} catch (IOException e) {
e.printStackTrace();
}
//reset the viewport
this.viewPortX = 0;
this.viewPortY = 0;
this.lm.setViewWindow(this.viewPortX, this.viewPortY, this.getWidth(), this.getHeight());
this.lastDirection = -1;
}