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
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 | 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 ); } } } } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 | 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 ); } } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 | 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 ); } } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 | 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 ); } } } } |