Cambiar de fase

Started by L3K-RH, July 03, 2010, 11:55:40 AM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Prg

hay otra forma de cambiar de fase, pero es un truco.
consiste en tener dos dcb, uno sería el que lanza las zonas (como el menú)
y otro el que tiene las zonas y las representa.

ext[0]=zona;
el primero sólo haría exec(...,midcb.dcb,ext)

y el segundo de acuerdo al argv lanzaría una zona, al finalizar la zona retornaría al programa principal y finalizaría descargando todos los recursos, el problema es que tendrías dos programas activos, y pues una pantalla por cada uno, pero funciona. eso sí, si desde el principio puedes usar M8E_CLEARSCENE ();, mucho mejor.

saludos.
en humos puedes mover la camara con los cursores. es necesario para los niveles a partir del dos :)

L3K-RH

Vereis, lo que yo tengo actualmente para cambiar de fase (pero sin funcionar) es:

1º --> El prg principal

INCLUDE "prg/....prg";
INCLUDE "prg/....prg";

BEGIN
   config_video ( ); //Las configuraciones iniciales
   
   creditos_ini (); //Los creditos
   cargar_sonidos ();//Carga los sonidos
   
   presentation ( );//Y pone el primer menu para jugar o salir
   
   menu ();//Luego este es el menu en el que eliges el mundo en el que juegas
   
   fases ();//Dependiendo de el mundo que eligas, fases invocará una mundo u otro
   
    LOOP
        IF ( key ( _ESC ) )
      exit ( 0 );
   END
        FRAME;
    END
END

2º --> El prg de las fases

PROCESS fases ()
BEGIN
   IF (mundo_elegido == 1)

      load_terrain ( "terrain/terrain0.png" , "terrain/t1.png" );//Terreno
   
      car ( );//El protagonista

      escenario ()//Casas, gente ...
   
      camaras ();
   
      sky ();//Cielo

      niebla (0 , 0 , 0 , 0 , 16000, 150 , 150 , 150); //...
   
      coche_enemigo ( );//Enemigo

      play_song (canciones
  • , 1);//Musica

          //....
          
          IF (key (_ñ))
             cambiar_fase ();
          END
          
       ELSEIF (mundo_elegido == 2)
       
          load_terrain ( "terrain/terrain1.png" , "terrain/t2.png" );//Terreno
       
          car ( );//El protagonista

          escenario2 ()
       
          camaras ();
       
          sky ();//Cielo

          niebla (0 , 10 , 40 , 30 , 1600, 150 , 150 , 150); //...
       
          coche_enemigo ( );//Enemigo

          play_song (canciones
  • , 4);//Musica

          //....
          
          IF (key (_ñ))
             cambiar_fase ();
          END
          
       ELSEIF (mundo_elegido == 3)
          

          //....
          
          IF (key (_ñ))
             cambiar_fase ();
          END
          
       END
    END

    3º --> Cambiar de fase

    PROCESS cambiar_fase ()
    BEGIN
       let_me_alone ();//Mata a todo lo que alla
       M8E_CLEARSCENE ();//Elimina todo lo este en pantalla
       
       config_video ( ); //Las configuraciones iniciales
       
       menu ();//Y luego este es el menu de mundos, otra vez
       
       fases ();
       
        LOOP
            IF ( key ( _ESC ) )
             exit ( 0 );
          END
            FRAME;
        END
    END


    ¿Que os parece?
"Todo se pude lograr, solo hace falta el querer y la oportunidad"

L3K-RH

Quote from: Windgate on July 06, 2010, 05:57:02 PM
L3K, sube tu ejemplo con el problema, por ejemplo con la tecla F cambiar de fase, para mirarlo.

Mi idea era pasarle a link una versión "mínima" del problema, pero creo que no tendré tiempo esta semana.

Claro, aunque esta muy desordenado, hay q depurar lineas de código q no sirven para nada.
Pero aun asi creo q se podra entender, cuando puedas actualiza mi direcctorio y pondre el link
"Todo se pude lograr, solo hace falta el querer y la oportunidad"

l1nk3rn3l

function cambiar_fase ()
BEGIN
   let_me_alone ();//Mata a todo lo que alla
frame;
  M8E_CLEARSCENE ();//Elimina todo lo este en pantalla
frame;
   
  // config_video ( ); //Las configuraciones iniciales
   
   menu ();//Y luego este es el menu de mundos, otra vez
   
   fases ();

   /*
    LOOP
        IF ( key ( _ESC ) )
         exit ( 0 );
      END
        FRAME;
    END*/
END


debes tener en cuenta que no debe haber ningun proceso usando algun modelo,
que ya ha sido descargado...




Windgate

Quotedebes tener en cuenta que no debe haber ningun proceso usando algun modelo,
que ya ha sido descargado...

Con la filosofía de 3Dit eso no puede pasar, el proceso que muere elimina su modelo en el ONEXIT

Gracias, lo probaré y si funciona te daré un karmazo tremendo ;D
Iván García Subero. Programador, profesor de informática, monitor de actividades culturales y presidente de TRINIT Asociación de Informáticos de Zaragoza. http://trinit.es

L3K-RH

Quote from: l1nk3rn3l on July 09, 2010, 04:31:59 PM
function cambiar_fase ()
BEGIN
   let_me_alone ();//Mata a todo lo que alla
frame;
  M8E_CLEARSCENE ();//Elimina todo lo este en pantalla
frame;
   
  // config_video ( ); //Las configuraciones iniciales
   
   menu ();//Y luego este es el menu de mundos, otra vez
   
   fases ();

END
Me temo que ni con los frames en medio funciona (al menos a mi), bueno creo hasta que se solucione me quedaré con el onexit (creo que es lo mas practico)
"Todo se pude lograr, solo hace falta el querer y la oportunidad"

l1nk3rn3l

sube el ejemplo a rapidshare.com
megaupload.com
y me lo mandas por privado ...

este error es muy importante ...

Windgate

Súbelo L3K, ¿En qué juego te ocurre eso?, ¿En el de los zombies o en el de la ciudad del espacio?

En el de los Zombies hay DE TODO, elementos de GUI, modelos animados, inanimados, terrenos, partículas... Ahí también hacía CRASH al intentar limpiar la escena, pero es más comprensible. Si tienes un ejemplo sencillo será mejor, quizás sea un elemento en particular el que causa ese problema.
Iván García Subero. Programador, profesor de informática, monitor de actividades culturales y presidente de TRINIT Asociación de Informáticos de Zaragoza. http://trinit.es

L3K-RH

Quote from: Windgate on July 16, 2010, 04:07:29 PM
Súbelo L3K, ¿En qué juego te ocurre eso?, ¿En el de los zombies o en el de la ciudad del espacio?

En el de los Zombies hay DE TODO, elementos de GUI, modelos animados, inanimados, terrenos, partículas... Ahí también hacía CRASH al intentar limpiar la escena, pero es más comprensible. Si tienes un ejemplo sencillo será mejor, quizás sea un elemento en particular el que causa ese problema.

En el mundo del futuro, por eso te decia q cuando pudieras actualizaras mi directorio para poner el link de descarga directa
"Todo se pude lograr, solo hace falta el querer y la oportunidad"

Windgate

Dame la versión que tienes con el crash y la subo.
Iván García Subero. Programador, profesor de informática, monitor de actividades culturales y presidente de TRINIT Asociación de Informáticos de Zaragoza. http://trinit.es