This site requires JavaScript, please enable it in your browser!
Greenfoot back
Mariachi
Mariachi wrote ...

2014/9/20

Images according to Levels

1
2
danpost danpost

2014/9/21

#
I would like to see all code releated to the field 'Level', or 'level' (now), in your world subclass.
Mariachi Mariachi

2014/9/21

#
Here it is:

import greenfoot.*;  // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)
import java.util.List;

/**
 * Write a description of class Background here.
 * 
 * @author (your name) 
 * @version (a version number or a date)
 */
public class Level extends World
{
   public static int level;
   private GameOver gameover = new GameOver();
   public static Player p;
   private GreenfootSound music1 = new GreenfootSound("music1.mp3");
   private GreenfootSound end = new GreenfootSound("end.mp3");
   public static String[][] map =
   {
        {"o                             ",
         "e    r       r       r       p",
         "  mmmmmmm  mmmmm  mmmmmmm  mmm",
         "  mb m       m e   o    ml ms ",
         "  mo m       m         cmlmmf ",
         "     ml  m   m  mmm  mmo lmmm ",
         "a   mmlmmmmmmm    q  q   lm   ",
         "mo  m lmy mb mm  mmumo   lm  n",
         "mm  m lmm m   m  ms sm   lm   ",
         "m     l   m  zm cm   emo lmo  ",
         "m     mm mmm mm mm     m lm   ",
         "    mtjjtjjjtjjtjjtm  mm l   q",
         "    maaaaaaaaaaaaaam  gu lk   ",
         "hmmmmmmmmmmmmmmmmmmmmmmmmmmmmm",
         "   000000000000000000000000  q",
         "      r       r        r      ",
         "mmmmmmmmmmmmmmmmmmmmmmmmmmmmmv",
         "olllllllllllllllllllllllllllll",
         "d    r    r     r     r       ",
         "mmmmmmmmmmmmmmmmmmmmmmmmmmmmmm",},
        {"m         o               m  d",
         "m   r     m  mmmmmm       m  m",
         "m  mmmm   mm     lmmmmmmmhm  m",
         "   mesmr rmb mmmmlu       qo m",
         "f  q  mm mmmmm  mlu mmmmmmm  m",
         "mm m            mlu         qm",
         " l og   m    r   lu    k     q",
         " lmmmmmmmmmmmmmmmmmmmmmmmmmmmm",
         "ml   000000000000000000    l q",
         " tjjjjjjjjjjjjjjjjjjjjjjjt l m",
         "aaaaaaaaaaaaaaaaaaaaaaaaaaml m",
         "mmmmmmmmmmmmmmmmmmmmmmmmmmml m",
         "olllllllllllllllllllllllllll m",
         "ml                         l m",
         "ml  qo    qo    qo    qo   l m",
         "mlmmmmmmmmmmmmmmmmmmmmmmmmmmmm",
         "ml                           q",
         "ml                            ",
         "mlxxm  mxm  mxxm  mxxm  mmm  p",
         "maaaaaaaaaaaaaaaaaaaaaaaaaaamm",},
        {"  l m e   l m   l ml ul      d",
         "p l m     l m l l hl ul  l   m",
         "mmlmm   o l m lml ml ml ml m m",
         "o l qo0 m l m lml ml ml ml q m",
         "0 l m   m l mglml mlyml mlfm m",
         "0 l m 0qo l mmmml mmmml mmmm m",
         "o l q   m l ml  l     l      m",
         "0 l mo0 m l ml  l r   l   r  m",
         "0 l m   o l mlmmmmmmmmmmmmmmmm",
         "o l q 0qm l ml               l",
         "0 l m   m l mo    r     r    l",
         "0 l mo0 o l mmmmmmmmmmmmmmmmml",
         "o l q   m l ml               l",
         "0 l m 0qm l ml    r     r   qm",
         "0 l m   o l mlmmmmmmmmmmmmmmmm",
         "o l qo0 m l ml                ",
         "0 l m   m l mo    r     r     ",
         "mmlmmm mmmlmmmmmmmmmmmmmmmmm  ",
         "mjtjjjtjujtjjjjjjjjjjjjjjjjjtm",
         "aaaaaaaaaaaaaaaaaaaaaaaaaaaaam",},                                        
        {"    u       u cu  l           ",
         "p   u       u uu  l           ",
         "uu  q  u u  u  uuuluuuu u  uuh",
         "    uu   u  u     l  uu u  u  ",
         "    ug   u  uul   l uuu u  u  ",
         "  uuuuu  u    lu  u  uu u  u  ",
         "k     u uu    lu zu  uu u  u  ",
         "uuu   u  u uuuuuuuuuuuuauaau  ",
         " yu k u    eo  00000000000000 ",
         " uu uuuu k  uuu        k   k  ",
         "  u   quuul u   uuuxxuuuuuuuuu",
         "u        ulcu                 ",
         "    r    uluu                 ",
         "uuuuuuu  ulluuu  uu  u   xuuuv",
         "         ulluuuaauuaauuaaa    ",
         "      r  qulu               qu",
         "uuu uuuuuu lu               qu",
         "           lu  uuuuuuuuuuuuuuu",
         "b      k   qu                 ",
         "uuuauuuuuuuuuaaaaaaaaaaaaaaaad",}};
  
   public void populateWorld() 
   {
        Player p = new Player();
        Door door = new Door();
        SpecialDoor specialdoor = new SpecialDoor();
        Mountain m = new Mountain();
        Mountain1 n = new Mountain1();
        Mountain2 w = new Mountain2();
        Pike1 a = new Pike1();
        Pike2 s = new Pike2();
        Ladder l = new Ladder();
        Knight k = new Knight();
        for( int i = 0; i < map[level].length; i++) { // la longeur du tabmap
            for( int j = 0; j < map[level][i].length(); j++) { // la longueur de la String map[i]
                Actor actor = null; // crée un actor null si w,p,m = on ajoute l'actor
                if(map[level][i].charAt(j) == 'p') {
                    actor = new Player();
                    this.p = (Player)actor;
                }
                else if(map[level][i].charAt(j) == 'm') {
                    actor = new Mountain();
                }
                else if(map[level][i].charAt(j) == 'n') {
                    actor = new Mountain1();
                }
                else if(map[level][i].charAt(j) == 'w') {
                    actor = new Mountain2();
                }
                else if(map[level][i].charAt(j) == 'd') {
                    actor = door;
                }
                else if(map[level][i].charAt(j) == 'a') {
                    actor = new Pike1();
                }
                else if(map[level][i].charAt(j) == 's') {
                    actor = new Pike2();
                }
                else if(map[level][i].charAt(j) == 'e') {
                    actor = new Pike3();
                }
                else if(map[level][i].charAt(j) == 'k') {
                    actor = new Knight();
                }
                else if(map[level][i].charAt(j) == 'l') {
                    actor = new Ladder();
                }
                else if(map[level][i].charAt(j) == 'x') {
                    actor = new Falling();
                }
                else if(map[level][i].charAt(j) == 'o') {
                    actor = new ArrowthrowD();
                }
                else if(map[level][i].charAt(j) == 'q') {
                    actor = new ArrowthrowG();
                }
                else if(map[level][i].charAt(j) == 'y') {
                    actor = door.getKey();
                }
                else if(map[level][i].charAt(j) == 'i') {
                    actor = new Menu();
                }
                else if(map[level][i].charAt(j) == 'u') {
                    actor = new Invisible();
                }
                else if(map[level][i].charAt(j) == 'v') {
                    Switche.specialdoor = new SpecialDoor();  
                    actor = Switche.specialdoor; 
                }
                else if(map[level][i].charAt(j) == 'z') {
                    actor = new Switche();
                }
                else if(map[level][i].charAt(j) == 't') {
                    actor = new Boat();
                }
                else if(map[level][i].charAt(j) == 'j') {
                    actor = new InvisibleBoat();
                }
                else if(map[level][i].charAt(j) == 'r') {
                    actor = new PK();
                }
                else if(map[level][i].charAt(j) == 'g') {
                    actor = new Key2();
                }
                else if(map[level][i].charAt(j) == 'h') {
                    Key2.keydoor = new KeyDoor();  
                    actor = Key2.keydoor; 
                }
                else if(map[level][i].charAt(j) == 'f') {
                    actor = new FalseKey1();
                }
                else if(map[level][i].charAt(j) == 'b') {
                    actor = new FalseKey2();
                }
                else if(map[level][i].charAt(j) == 'c') {
                    actor = new FalseSwitche();
                }
                else if(map[level][i].charAt(j) == '0') {
                    actor = new Bat();
                }
                if( actor != null) {
                    addObject( actor, 16+j*32, 16+i*32);  // inversion de i et de j
                }
            }   
        }
   }
   
   public Level() 
   {
        super(32*map[level][0].length(), 32*map[level].length, 1);
        // 30x20 charactères
        // 960/30= 32 pixels et 640/20 = 32 pixels
        removeObjects(getObjects(null));
        populateWorld();             
   } 
}


danpost danpost

2014/9/21

#
Ok. From your Pike1 class, remove line 11 -- this one:
public static int level;
Your 'level' field is in the 'Level' class and can be reference by 'Level.level' because it is 'public static'. So, now, change your 'image' method to this:
public void image()
{
    if (Level.level <= 3) setImage(pike1);
    else if (Level.level <= 6) setImage(water);
}
This method should only need to be called once -- when the actor is created. So, in the Pike1 class, remove line 23:
image();
from the act method and add the following (which is called when the Pike1 actor is created):
public Pike1()
{
    image();
}
Mariachi Mariachi

2014/9/21

#
Awesome, Thanks to you two
You need to login to post a reply.
1
2