Union de procesos

Buenas, tengo un problema y es que yo estoy haciendo un trabajo para la facultad. Mi problema surge de que yo hice las 3 partes del juego por separado, y ya lo tengo completo, pero cuando quiero unir los archivos en uno solo, se saltea siempre el del medio. Primero intente probando el “Principio”, luego puse el “Medio” (y hasta ahi funcionaba) y al seguir el mismo orden que en los anteriores 2, el programa saltea el “medio” y me salta directo al “final”. (Obviamente al unir me refiero a poner los procesos en uno solo)

String estadox;
String estado; 
String charlas; 
String finales;
String creditos;
String afuera; 
String charla;
String castilloMedio;
//boolean charla=true;

PImage charlaP;
PImage dama;
PImage jhonT;
PImage charla3;
PImage castilloM;
PImage castilloM2;
PImage charlap;
PImage comienzo;
PImage viejo;
PImage jhon;
PImage rey;
PImage castilloF; 
PImage reyc1;
PImage reyc2;
PImage reyc3;
PImage reyc4;
PImage reyc5;
PImage reyc6;
PImage reyc7;
PImage cuadrado;
PImage cuadrado2;
PImage reycno;
PImage reycno2;
PImage got;
PFont pixel;
PImage principio;


void setup (){ 
  size (800, 600);
  
  //imagenes
  comienzo = loadImage ( "principio.png" ); 
  viejo = loadImage ( "oldman.png");
  jhon = loadImage ( "jhon.png" ); 
  charlaP =loadImage ("charlaP.png");
  jhonT = loadImage ( "jhonT.png" );
  dama = loadImage ( "dama.png" );
  castilloM =loadImage( "castilloM.jpg"); 
  castilloM2 = loadImage ( "castilloM2.jpg" );
  cuadrado = loadImage ( "cuadrado.jpg" );
  cuadrado2 = loadImage ( "cuadrado2.jpg" );
  charla3 = loadImage ( "charla3.png" );
  castilloF = loadImage ("castilloF.jpg");
  rey = loadImage ( "rey.png" );
  reyc1 = loadImage ( "reyc1.png" );
  reyc2 = loadImage ( "reyc2.png" );
  reyc3 = loadImage ( "reyc3.png" );
  reyc4 = loadImage ( "reyc4.png" );
  reyc5 = loadImage ( "reyc5.png" );
  reyc6 = loadImage ( "reyc6.png" );
  reyc7 = loadImage ( "reyc7.png" );
  reycno = loadImage ( "reycno.png");
  reycno2 = loadImage ( "reycno2.png");
  got = loadImage ( "got.png");
 /////////////////////////////////////////
afuera = "principio";
castilloMedio = "castilloM";
charlas = "opcion";  
estadox = "castilloM"; 
estado = "castillo";
creditos = "creditos";
finales = "finales";  
pixel = loadFont ( "Pixeled-48.vlw");
  textFont (pixel);
  }


  
void draw (){

  if (estado.equals("castillo") ) {
    image (castilloF, 0, 0, 800, 600);   
    image (jhon, 50, 300, 114, 114); 
    image (rey, 680, 245, 124, 124);
    image (reyc1, 480, 15, 300, 200); 
    image (cuadrado, 620, 400, 50, 50);
    image (cuadrado2, 560, 300, 45, 45);

    ///////////////////////////////////////
  } else if ( estado.equals("castillo1") ) {
    image (castilloF, 0, 0, 800, 600);   
    image (jhon, 50, 300, 114, 114); 
    image (rey, 680, 245, 124, 124);
    image (cuadrado, 620, 400, 50, 50);
    image (cuadrado2, 560, 300, 45, 45);
    image (reyc2, 480, 15, 300, 200); 
    ///////////////////////////////////////
  } else if ( estado.equals("opcion") ) {
    image (castilloF, 0, 0, 800, 600);   
    image (jhon, 50, 300, 114, 114); 
    image (rey, 680, 245, 124, 124);
    image (cuadrado, 620, 400, 50, 50);
    image (cuadrado2, 560, 300, 45, 45);
    image (reyc3, 480, 15, 300, 200); 
    ///////////////////////////////////////
  } else if ( estado.equals("opcion1") ) {
    image (castilloF, 0, 0, 800, 600);   
    image (jhon, 50, 300, 114, 114); 
    image (rey, 680, 245, 124, 124);
    image (cuadrado, 620, 400, 50, 50);
    image (cuadrado2, 560, 300, 45, 45);
    image (reyc4, 480, 15, 300, 200); 
    ///////////////////////////////////////
  } else if ( estado.equals("opcion2") ) {
    image (castilloF, 0, 0, 800, 600);   
    image (jhon, 50, 300, 114, 114); 
    image (rey, 680, 245, 124, 124);
    image (cuadrado, 620, 400, 50, 50);
    image (cuadrado2, 560, 300, 45, 45);
    image (reyc5, 480, 15, 300, 200); 
    ///////////////////////////////////////
  } else if ( estado.equals("castillo2") ) {
    image (castilloF, 0, 0, 800, 600);   
    image (jhon, 50, 300, 114, 114); 
    image (rey, 680, 245, 124, 124);
    image (cuadrado, 620, 400, 50, 50);
    image (cuadrado2, 560, 300, 45, 45);
    image (reycno2, 480, 15, 300, 200); 
    ///////////////////////////////////////
  } else if ( estado.equals("opcion3") ) {
    image (castilloF, 0, 0, 800, 600);   
    image (jhon, 50, 300, 114, 114); 
    image (rey, 680, 245, 124, 124);
    image (cuadrado, 620, 400, 50, 50);
    image (cuadrado2, 560, 300, 45, 45);
    image (reyc6, 480, 15, 300, 200); 
    ///////////////////////////////////////
  } else if ( estado.equals("castillo3") ) {
    image (castilloF, 0, 0, 800, 600);   
    image (jhon, 50, 300, 114, 114); 
    image (rey, 680, 245, 124, 124);
    image (cuadrado, 620, 400, 50, 50);
    image (cuadrado2, 560, 300, 45, 45);
    image (reyc7, 480, 15, 300, 200); 
    ///////////////////////////////////////
  }else if (estado.equals("castillo4") ) {
    image (castilloF, 0, 0, 800, 600);   
    image (jhon, 50, 300, 114, 114); 
    image (rey, 680, 245, 124, 124);
    image (cuadrado, 620, 400, 50, 50);
    image (cuadrado2, 560, 300, 45, 45);
    image (reycno2, 480, 15, 300, 200);  
   }else if (estado.equals("finales1") ) { 
     background (255);
     noStroke ();
    textSize (28);
    fill (0);
     text ("¡Felicitaciones ganaste la guerra!", 10, 200);
     image(got,150, 150, 500, 450);
      }else if (estado.equals("finales2") ) { 
     background (255);
     noStroke ();
    textSize (80);
    fill (255,0,0);
     text ("YOU DIED", 125, 200);
     image(got,150, 150, 500, 450);
     ////////////////////////////////////////////
    }else if( estado.equals("creditos1") ) {
     background (255);
      textSize (28); 
    fill( 0 );
   text( "Director: Francesco Folino", 100, 250-frameCount);
   
     fill( 30);
   text( "Principales", 150, 310-frameCount);
   
    fill( 100);
   text( "Jhon", 150, 360-frameCount);
   
    fill( 100);
   text( "Rey (Ned Stark)", 150, 420-frameCount);
   
    fill( 30);
   text( "Secundarios", 150, 480-frameCount);
   
    fill( 100);
   text( "Dama", 150, 540-frameCount);
   
    fill( 100);
   text( "viejo", 150, 600-frameCount);
   
    fill( 30);
   text( "Guionista",150, 660-frameCount);
   
    fill( 100);
   text( "Francesco Folino", 150, 720-frameCount);
   
    fill(30);
   text( "Productor",150, 780-frameCount);
   
    fill( 100);
   text( "Francesco Folino", 150, 840-frameCount);
   
   textSize (18);{
   fill( 140);
   text( "Y con la participacion especial de...",150, 900-frameCount);
   }
   
    fill( 255, 0, 0);
   text( "Francesco Folino", 150, 960-frameCount);
   frameRate (24); 
    
    image (got, 150, 980-frameCount, 450, 450);
  }
 //////////////////////////////////////// 
  if( estado.equals("castillox") ){
image (castilloM, 0, 0, 800, 600);
image (dama, 380, 160, 124, 124);
image (jhon, 50, 250, 124, 124);
image (cuadrado, 370, 280, 40, 40);
image (cuadrado2, 500, 280, 40, 40);
image (charla3, 170, 0, 280, 160);

}else if ( estadox.equals("castillox1") ){
 image (castilloM2, 0, 0, 800, 600);
  image (jhonT, 50,250, 124, 124);
 image (dama, 380, 160, 124, 124);
noStroke ();
ellipse ( 460,350, 40, 40);

}else if ( estadox.equals("castillox2") ){
image (castilloM, 0, 0, 800, 600);
  image (jhon, 50, 250, 124, 124);
 image (dama, 380, 160, 124, 124);
noStroke ();
ellipse ( 460, 350, 40, 40);

////////////////////////////////////// 
 
}if (afuera.equals("principio") ){
    image (comienzo, 0, 0, 800, 600 );
    image ( viejo, 535, 223, 95, 92);
    image ( jhon,20,300, 124, 124);
   
   

if (afuera.equals("principio1") )
  image (comienzo, 0, 0, 800, 600 );
  image ( viejo, 535, 223, 95, 92);
   image ( jhon,20,300, 124, 124); 
    fill (255,255,0);
    rect ( 570, 290, 25, 25);
   image (charlaP, 200,10,500, 200);
   textSize(19);
   text ("(Entrar al castillo)", 505, 330);
 }
 
}


void mouseClicked(){
   if (afuera.equals("principio") )
   if( mouseX > 540 && mouseX < 655 && mouseY > 200 && mouseY < 348){
                                                                                           //afuera = "principio"; charlas = "opcion"; estadox = "castilloM"; estado = "castillo";creditos = "creditos";
                                                                                           //finales = "finales";  
         afuera = "castillox";
  
 }
if (afuera.equals("castillox") ) {
  if (mouseX > 360 && mouseX < 420 && mouseY > 260 && mouseY < 320){
    
    estado= "castillox1";
  }
 if (afuera.equals("castillox") ) {
  if ( mouseX > 480 && mouseX < 560 && mouseY > 260 && mouseY < 320){
   
     estado = "castillox2";
  }
       
if (estado.equals("castillox1") ) 
  if ( mouseX > 440 && mouseX < 490 && mouseY > 330 && mouseY < 370){
   
     estado = "castillox1";

  } if (estado.equals("castillox2") ){ 
  if ( mouseX > 440 && mouseX < 490 && mouseY > 330 && mouseY < 370){
   
     estado = "castillox1";
 
/////////////////////////////////////////////////////////////////////////////////////////////
 

 }else  if (estadox == "castillo1"){
 if ( mouseX > 600 && mouseX < 670 && mouseY > 400 && mouseY < 460){
                                                                       //Si le decis si a la plata
    estado = "opcion";
  }
 } else if ( estado == "opcion") 
  if (mouseX > 600 && mouseX < 670 && mouseY > 400 && mouseY < 460){
    estado = "creditos1"; 
    
  }
  if (estado == "castillo1"){
 if  (mouseX > 540 && mouseX < 610 && mouseY > 280 && mouseY < 360) {
                                                                       //Si le decis NO al a plata
 estado = "opcion1"; 
   }
 
  
   
  }else if ( estado == "opcion1") {
  if (mouseX > 540 && mouseX < 610 && mouseY > 280 && mouseY < 360) {
    estado = "creditos1"; 

  }
  
 }

  }

  else if (estado == "castillo2"){
  if ( mouseX > 540 && mouseX < 610 && mouseY > 280 && mouseY < 360) {
                                                                      // Cuadrado rojo calabzo
    estado = "opcion3";
  }
  
 }else if ( estado == "opcion3") 
  if (mouseX > 540 && mouseX < 610 && mouseY > 280 && mouseY < 360) {
    estado = "creditos1"; 
  }
 
  if (estado == "castillo2"){
 if  (mouseX > 600 && mouseX < 670 && mouseY > 400 && mouseY < 460) {
                                                                     // Increible verde
 estado = "castillo4"; 
 
 }

} else if (estado == "castillo4"){
if  (mouseX > 600 && mouseX < 670 && mouseY > 400 && mouseY < 460) {
                                                                   //Perdon en cuadrado verde
 estado = "opcion2"; 
}

}else if ( estado == "opcion2"){ 
  if (mouseX > 600 && mouseX < 670 && mouseY > 400 && mouseY < 460) {
    estado = "creditos1"; 
}

}    
if (estado == "castillo4"){
 if  (mouseX > 540 && mouseX < 610 && mouseY > 280 && mouseY < 360) {
                                                                     //Guerra o muerte
 estado = "castillo3"; 
 }
}

 

///////////////////////////////////////////////////////////////////////////////////////////////
else if (estado == "castillo3"){
 if  (mouseX > 540 && mouseX < 610 && mouseY > 280 && mouseY < 360) {
 
 estado = "finales1"; 
}
}
 if (estado == "castillo3"){
 if  (mouseX > 600 && mouseX < 670 && mouseY > 400 && mouseY < 460) {
 
 estado = "finales2"; 
}
}

 
  }
 }
 

   
 }

En mousePressed():

estadox == “castillo1”
MAL!

==>

estadox.equals(“castillo1”)
BUENO!

Si, es verdad, pero lo arregle y me sigue sucediendo lo mismo, de que me saltea la parte del medio, y que va directo al final. :confused:

Make sure to use if-else statements.

If you only use if statements, the state may update in an early case, and then conditions for a later case will still be met in the same click.