I am Showing the player all 10 Levels so he can choose any level but he first should have to win the previous level to unlock it how would I achieve this :)
Code Of The Start_Menu_Screen
Code of my First and second level
And The Code of Pushy the player
import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)
/**
* Write a description of class Start_Menu_Screen here.
*
* @author (your name)
* @version (a version number or a date)
*/
public class Start_Menu_Screen extends World
{
/**
* Constructor for objects of class Start_Menu_Screen.
*
*/
public Start_Menu_Screen()
{
// Create a new world with 600x400 cells with a cell size of 1x1 pixels.
super(700, 500, 1);
setBackground("StartScreen.png");
buttonAdd();
}
public void buttonAdd()
{
addObject(Level1, 110, 125);
Level1.setImage("1.png");
addObject(Level2, 185, 125);
Level2.setImage("2.png");
addObject(Level3, 260, 125);
Level3.setImage("3.png");
addObject(Level4, 335, 125);
Level4.setImage("4.png");
addObject(Level5, 410, 125);
Level5.setImage("5.png");
addObject(Level6, 485, 125);
Level6.setImage("6.png");
addObject(Level7, 560, 125);
Level7.setImage("7.png");
addObject(Level8, 110, 200);
Level8.setImage("8.png");
addObject(Level9, 185, 200);
Level9.setImage("9.png");
addObject(Level10, 260, 200);
Level10.setImage("10.png");
}
boolean mouseDown;
Button Level1 = new Button("load.png");
Button Level2 = new Button("load.png");
Button Level3 = new Button("load.png");
Button Level4 = new Button("load.png");
Button Level5 = new Button("load.png");
Button Level6 = new Button("load.png");
Button Level7 = new Button("load.png");
Button Level8 = new Button("load.png");
Button Level9 = new Button("load.png");
Button Level10 = new Button("load.png");
public void act()
{
knopfdruck();
}
private void knopfdruck()
{
//Level 1 Button/Animation
if (Greenfoot.mouseClicked(Level1)) {
mouseDown = false;
Level1.setLocation(110, 125);
Greenfoot.delay(10);
Greenfoot.setWorld(new TLevel1());
}
if (Greenfoot.mouseMoved(Level1))
{
Level1.setLocation(110, 115);
}
else
{
if (Greenfoot.mouseMoved(null) && !Greenfoot.mouseMoved(Level1)){
Level1.setLocation(110, 125);
}
}
//Level 2 Button/Animation
if (Greenfoot.mouseClicked(Level2)) {
mouseDown = false;
Level2.setLocation(185, 125);
Greenfoot.delay(10);
Greenfoot.setWorld(new TLevel2());
}
if (Greenfoot.mouseMoved(Level2))
{
Level2.setLocation(185, 115);
}
else
{
if (Greenfoot.mouseMoved(null) && !Greenfoot.mouseMoved(Level2)){
Level2.setLocation(185, 125);
}
}
//Level 3 Button/Animation
if (Greenfoot.mouseClicked(Level3)) {
mouseDown = false;
Level3.setLocation(260, 125);
Greenfoot.delay(10);
Greenfoot.setWorld(new TLevel3());
}
if (Greenfoot.mouseMoved(Level3))
{
Level3.setLocation(260, 115);
}
else
{
if (Greenfoot.mouseMoved(null) && !Greenfoot.mouseMoved(Level3)){
Level3.setLocation(260, 125);
}
}
//Level 4 Button/Animation
if (Greenfoot.mouseClicked(Level4)) {
mouseDown = false;
Level4.setLocation(335, 125);
Greenfoot.delay(10);
Greenfoot.setWorld(new TLevel4());
}
if (Greenfoot.mouseMoved(Level4))
{
Level4.setLocation(335, 115);
}
else
{
if (Greenfoot.mouseMoved(null) && !Greenfoot.mouseMoved(Level4)){
Level4.setLocation(335, 125);
}
}
//Level 5 Button/Animation
if (Greenfoot.mouseClicked(Level5)) {
mouseDown = false;
Level5.setLocation(410, 125);
Greenfoot.delay(10);
Greenfoot.setWorld(new Level5());
}
if (Greenfoot.mouseMoved(Level5))
{
Level5.setLocation(410, 115);
}
else
{
if (Greenfoot.mouseMoved(null) && !Greenfoot.mouseMoved(Level5)){
Level5.setLocation(410, 125);
}
}
//Level 6 Button/Animation
if (Greenfoot.mouseClicked(Level6)) {
mouseDown = false;
Level6.setLocation(485, 125);
Greenfoot.delay(10);
Greenfoot.setWorld(new Level6());
}
if (Greenfoot.mouseMoved(Level6))
{
Level6.setLocation(485, 115);
}
else
{
if (Greenfoot.mouseMoved(null) && !Greenfoot.mouseMoved(Level6)){
Level6.setLocation(485, 125);
}
}
//Level 7 Button/Animation
if (Greenfoot.mouseClicked(Level7)) {
mouseDown = false;
Level7.setLocation(560, 125);
Greenfoot.delay(10);
Greenfoot.setWorld(new TLevel1());
}
if (Greenfoot.mouseMoved(Level7))
{
Level7.setLocation(560, 115);
}
else
{
if (Greenfoot.mouseMoved(null) && !Greenfoot.mouseMoved(Level7)){
Level7.setLocation(560, 125);
}
}
//Level 8 Button/Animation
if (Greenfoot.mouseClicked(Level8)) {
mouseDown = false;
Level8.setLocation(110, 190);
Greenfoot.delay(10);
Greenfoot.setWorld(new TLevel1());
}
if (Greenfoot.mouseMoved(Level8))
{
Level8.setLocation(110, 190);
}
else
{
if (Greenfoot.mouseMoved(null) && !Greenfoot.mouseMoved(Level8)){
Level8.setLocation(110, 200);
}
}
//Level 9 Button/Animation
if (Greenfoot.mouseClicked(Level9)) {
mouseDown = false;
Level9.setLocation(185, 190);
Greenfoot.delay(10);
Greenfoot.setWorld(new TLevel1());
}
if (Greenfoot.mouseMoved(Level9))
{
Level9.setLocation(185, 190);
}
else
{
if (Greenfoot.mouseMoved(null) && !Greenfoot.mouseMoved(Level9)){
Level9.setLocation(185, 200);
}
}
//Level 10 Button/Animation
if (Greenfoot.mouseClicked(Level10)) {
mouseDown = false;
Level10.setLocation(260, 190);
Greenfoot.delay(10);
Greenfoot.setWorld(new TLevel1());
}
if (Greenfoot.mouseMoved(Level10))
{
Level10.setLocation(260, 190);
}
else
{
if (Greenfoot.mouseMoved(null) && !Greenfoot.mouseMoved(Level10)){
Level10.setLocation(260, 200);
}
}
}
}
import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)
/**
* Die Klasse PushyWorld
*
* @author Rudolf Silberberg
* @version 2018-09-06
*/
public class TLevel1 extends MyWorld
{
/**
* Constructor for objects of class PushyWorld.
*
*/
public TLevel1()
{
super(20, 15, 30); //600 x 450 px
level1();
}
public void act()
{
}
private void level1() {
randDerWelten0Bis2();
Pushy pushy = new Pushy();
addObject(pushy, 6, 5);
Ausgang ausgang = new Ausgang();
addObject(ausgang,13,5);
}
private void randDerWelten0Bis2() {
Wand wand = new Wand();
addObject(wand, 4, 11);
Wand wand2 = new Wand();
addObject(wand2, 4, 10);
Wand wand3 = new Wand();
addObject(wand3, 4, 9);
Wand wand4 = new Wand();
addObject(wand4, 4, 8);
Wand wand5 = new Wand();
addObject(wand5, 4, 7);
Wand wand6 = new Wand();
addObject(wand6, 4, 6);
Wand wand7 = new Wand();
addObject(wand7, 4, 5);
Wand wand8 = new Wand();
addObject(wand8, 4, 4);
Wand wand9 = new Wand();
addObject(wand9, 4, 3);
Wand wand10 = new Wand();
addObject(wand10, 5, 3);
Wand wand11 = new Wand();
addObject(wand11, 6, 3);
Wand wand12 = new Wand();
addObject(wand12, 7, 3);
Wand wand13 = new Wand();
addObject(wand13, 8, 3);
Wand wand14 = new Wand();
addObject(wand14, 8, 4);
Wand wand15 = new Wand();
addObject(wand15, 8, 5);
Wand wand16 = new Wand();
addObject(wand16, 8, 6);
Wand wand17 = new Wand();
addObject(wand17, 8, 7);
Wand wand18 = new Wand();
addObject(wand18, 8, 8);
Wand wand19 = new Wand();
addObject(wand19, 9, 8);
Wand wand20 = new Wand();
addObject(wand20, 10, 8);
Wand wand21 = new Wand();
addObject(wand21, 11, 8);
Wand wand22 = new Wand();
addObject(wand22, 11, 7);
Wand wand23 = new Wand();
addObject(wand23, 11, 6);
Wand wand24 = new Wand();
addObject(wand24, 11, 5);
Wand wand25 = new Wand();
addObject(wand25, 11, 4);
Wand wand26 = new Wand();
addObject(wand26, 11, 3);
Wand wand27 = new Wand();
addObject(wand27, 12, 3);
Wand wand28 = new Wand();
addObject(wand28, 13, 3);
Wand wand29 = new Wand();
addObject(wand29, 14, 3);
Wand wand30 = new Wand();
addObject(wand30, 15, 3);
Wand wand31 = new Wand();
addObject(wand31, 15, 4);
Wand wand32 = new Wand();
addObject(wand32, 15, 5);
Wand wand33 = new Wand();
addObject(wand33, 15, 6);
Wand wand34 = new Wand();
addObject(wand34, 15, 7);
Wand wand35 = new Wand();
addObject(wand35, 15, 8);
Wand wand36 = new Wand();
addObject(wand36, 15, 9);
Wand wand37 = new Wand();
addObject(wand37, 15, 10);
Wand wand38 = new Wand();
addObject(wand38, 15, 11);
Wand wand39 = new Wand();
addObject(wand39, 14, 11);
Wand wand40 = new Wand();
addObject(wand40, 13, 11);
Wand wand41 = new Wand();
addObject(wand41, 12, 11);
Wand wand42 = new Wand();
addObject(wand42, 11, 11);
Wand wand43 = new Wand();
addObject(wand43, 10, 11);
Wand wand44 = new Wand();
addObject(wand44, 9, 11);
Wand wand45 = new Wand();
addObject(wand45, 8, 11);
Wand wand46 = new Wand();
addObject(wand46, 7, 11);
Wand wand47 = new Wand();
addObject(wand47, 6, 11);
Wand wand48 = new Wand();
addObject(wand48, 5, 11);
}
}
import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)
/**
* Die Klasse PushyWorld
*
* @author Rudolf Silberberg
* @version 2018-09-06
*/
public class TLevel2 extends MyWorld
{
/**
* Constructor for objects of class PushyWorld.
*
*/
public TLevel2()
{
super(20, 15, 30);
level2();
}
private void level2() {
randDerWelten0Bis2();
Ausgang ausgang = new Ausgang();
addObject(ausgang, 13, 5);
Pushy pushy = new Pushy();
addObject(pushy, 6, 5);
Diamant diamant = new Diamant();
addObject(diamant,6,9);
}
private void randDerWelten0Bis2() {
Wand wand = new Wand();
addObject(wand, 4, 11);
Wand wand2 = new Wand();
addObject(wand2, 4, 10);
Wand wand3 = new Wand();
addObject(wand3, 4, 9);
Wand wand4 = new Wand();
addObject(wand4, 4, 8);
Wand wand5 = new Wand();
addObject(wand5, 4, 7);
Wand wand6 = new Wand();
addObject(wand6, 4, 6);
Wand wand7 = new Wand();
addObject(wand7, 4, 5);
Wand wand8 = new Wand();
addObject(wand8, 4, 4);
Wand wand9 = new Wand();
addObject(wand9, 4, 3);
Wand wand10 = new Wand();
addObject(wand10, 5, 3);
Wand wand11 = new Wand();
addObject(wand11, 6, 3);
Wand wand12 = new Wand();
addObject(wand12, 7, 3);
Wand wand13 = new Wand();
addObject(wand13, 8, 3);
Wand wand14 = new Wand();
addObject(wand14, 8, 4);
Wand wand15 = new Wand();
addObject(wand15, 8, 5);
Wand wand16 = new Wand();
addObject(wand16, 8, 6);
Wand wand17 = new Wand();
addObject(wand17, 8, 7);
Wand wand18 = new Wand();
addObject(wand18, 8, 8);
Wand wand19 = new Wand();
addObject(wand19, 9, 8);
Wand wand20 = new Wand();
addObject(wand20, 10, 8);
Wand wand21 = new Wand();
addObject(wand21, 11, 8);
Wand wand22 = new Wand();
addObject(wand22, 11, 7);
Wand wand23 = new Wand();
addObject(wand23, 11, 6);
Wand wand24 = new Wand();
addObject(wand24, 11, 5);
Wand wand25 = new Wand();
addObject(wand25, 11, 4);
Wand wand26 = new Wand();
addObject(wand26, 11, 3);
Wand wand27 = new Wand();
addObject(wand27, 12, 3);
Wand wand28 = new Wand();
addObject(wand28, 13, 3);
Wand wand29 = new Wand();
addObject(wand29, 14, 3);
Wand wand30 = new Wand();
addObject(wand30, 15, 3);
Wand wand31 = new Wand();
addObject(wand31, 15, 4);
Wand wand32 = new Wand();
addObject(wand32, 15, 5);
Wand wand33 = new Wand();
addObject(wand33, 15, 6);
Wand wand34 = new Wand();
addObject(wand34, 15, 7);
Wand wand35 = new Wand();
addObject(wand35, 15, 8);
Wand wand36 = new Wand();
addObject(wand36, 15, 9);
Wand wand37 = new Wand();
addObject(wand37, 15, 10);
Wand wand38 = new Wand();
addObject(wand38, 15, 11);
Wand wand39 = new Wand();
addObject(wand39, 14, 11);
Wand wand40 = new Wand();
addObject(wand40, 13, 11);
Wand wand41 = new Wand();
addObject(wand41, 12, 11);
Wand wand42 = new Wand();
addObject(wand42, 11, 11);
Wand wand43 = new Wand();
addObject(wand43, 10, 11);
Wand wand44 = new Wand();
addObject(wand44, 9, 11);
Wand wand45 = new Wand();
addObject(wand45, 8, 11);
Wand wand46 = new Wand();
addObject(wand46, 7, 11);
Wand wand47 = new Wand();
addObject(wand47, 6, 11);
Wand wand48 = new Wand();
addObject(wand48, 5, 11);
}
}
import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)
/**
* Die Klasse Pushy
*
* @author Rudolf Silberberg
* @version 2018-09-06
*/
public class Pushy extends Movable
{
/**
* Act - do whatever the Pushy wants to do. This method is called whenever
* the 'Act' or 'Run' button gets pressed in the environment.
*/
public void act()
{
move();
pickUp();
gameEnd();
}
/**
* Es wird überprüft, ob eine der Pfeiltasten
* gedrückt wurde und der Pushy falls möglich
* in die entsprechende Richtung bewegt.
*/
private void move(){
if(Greenfoot.isKeyDown("w"))
{
Kiste k = (Kiste)getOneObjectAtOffset(0, -1, Kiste.class);
if(k != null)
{
k.move('w');
}
move('w');
}
else if(Greenfoot.isKeyDown("a")){
Kiste k = (Kiste)getOneObjectAtOffset(-1, 0, Kiste.class);
if(k != null)
{
k.move('a');
}
move('a');
}
else if(Greenfoot.isKeyDown("s")){
Kiste k = (Kiste)getOneObjectAtOffset(0, 1, Kiste.class);
if(k != null)
{
k.move('s');
}
move('s');
}
else if(Greenfoot.isKeyDown("d")){
Kiste k = (Kiste)getOneObjectAtOffset(1, 0, Kiste.class);
if(k != null)
{
k.move('d');
}
move('d');
}
}
/**
* Wenn Pushy auf einen Diamanten tritt,
* hebt es diesen auf.
*/
private void pickUp()
{ Actor Diamant = getOneObjectAtOffset(0, 0, Diamant.class);
if(Diamant != null)
{
getWorld().removeObject(Diamant);
}
}
/**
* Pushy verlä die Welt, wenn es auf einen
* Ausgang tritt. In der act-Methode der Klasse
* PushyWorld wird dies erkannt und das Spiel beendet.
*/
private void gameEnd()
{
Actor Ausgang = getOneObjectAtOffset(0, 0, Ausgang.class);
Schlussbild s = new Schlussbild();
if(Ausgang != null) {
if(getWorld().getObjects(Diamant.class).size() <1) //Ich Hätte natürlich auch die count Methode aus der welt benutzen können habe ich aber übersehen
{
getWorld().addObject(s ,10 ,7);
s.setImage("gewonnen.png");
MyWorld.levelCheck = true;
getWorld().removeObject(this);
Greenfoot.delay(5);
Greenfoot.setWorld(new Start_Menu_Screen());
}
else
{
getWorld().addObject(s ,10 ,7);
s.setImage("verloren.png");
getWorld().removeObject(this);
}
}
}
}

