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.