Problemas con mod_vlc

Started by Yawin, February 15, 2012, 06:51:40 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Yawin

Hola a todos! Sigo vivo, sí xDD
El tema es que estoy haciendo un juego para el que necesito el mod_vlc. Me va bien, pero cuando acaba el video y cuando salgo del bucle de reproducción, dándole al esc, se bloquea la imagen y el sonido continua hasta que se acaba.

He comparado con el ejemplo que venía en la descarga y no comprendo que pasa. Este es mi código:
function video(string fname)
    private
        int time=0, delay=30, track=1;
        string nomb;
    end
    begin
        video=1;
        nomb="dll/videos/"+fname;
        if(fexists(nomb))
            dump_type=complete_dump;
            restore_type=complete_restore;
   
            graph = video_play(nomb, 1024, 768);
            x = 512; y = 384;
            while(! video_is_playing() && ! key(_esc))
                FRAME;
            end
            while(!key(_esc) && video_is_playing())
                if(timer[0] > time+delay)
                    if(key(_space))
                        video_pause();
                        time = timer[0];
                    end
                end
                FRAME;
            end
        end
        video=0;
    end


Este es el proyecto entero:
http://pensarescompartir.com/download?id=18

Gracias por las ayudas que me podáis proporcionar ^__^
Sigue el desarrollo de mi motor RPG: https://www.youtube.com/watch?v=TbsDq3RHU7g

process main()
       begin
           loop
               pedo();
               frame;
            end
       end

KeoH

yo no lo he probado lo confieso .. pero el meter frames en una function no me gusta xD prueba a q sea un process a ver si hay diferencia xDD llamame maniatico xD

FreeYourMind

para que usas 2 whiles ? no te vale solo el primero ? El sonido que dices es el del video cierto ? Has mirao el codigo del bennukaraoke de josebita ?

josebita

Prueba a cambiar process. En todo caso, mañana lo miraré. ¿Qué plataforma usas?.

Yawin

#4
Uso windows, y querria no tener que cambiar a process, os explico:
Tengo un proceso llamado juego que va cambiando de mundos. Cada mundo es una funcion, y por tanto el proceso juego no continua hasta que no acaba el mundo. A su vez, este va cambiando de niveles dentro del mundo en el que se esta jugando, y cada nivel es otra funcion que hasta que no acaba no deja continuar al siguiente nivel.

Y si yo hago un nivel que primero tenga una introduccion en video, y luego el mapa, voy a hacer una funcion para el video y otra para el mapa. Teniendo frames los dos. Igual no me entendeis, pero la verdad, me parece una chorrada no querer poner un frame en una funcion. Para mi una process (en lineas generales) es una funcion que se ejecuta independientemente (no es exactamente eso, pero se me entiende).

Quote from: FreeYourMind on February 15, 2012, 10:22:25 PM
para que usas 2 whiles ? no te vale solo el primero?
El primer while espera a que el video inicie y el otro está mientras el video se ejecuta.

Quote from: josebita on February 16, 2012, 12:02:00 AM
Prueba a cambiar process.
Sigue sin ir.
Sigue el desarrollo de mi motor RPG: https://www.youtube.com/watch?v=TbsDq3RHU7g

process main()
       begin
           loop
               pedo();
               frame;
            end
       end

BlySntK

Quote from: Yawin on February 16, 2012, 08:22:24 AM
Uso windows, y querria no tener que cambiar a process, os explico:
Tengo un proceso llamado juego que va cambiando de mundos. Cada mundo es una funcion, y por tanto el proceso juego no continua hasta que no acaba el mundo. A su vez, este va cambiando de niveles dentro del mundo en el que se esta jugando, y cada nivel es otra funcion que hasta que no acaba no deja continuar al siguiente nivel.

Y si yo hago un nivel que primero tenga una introduccion en video, y luego el mapa, voy a hacer una funcion para el video y otra para el mapa. Teniendo frames los dos. Igual no me entendeis, pero la verdad, me parece una chorrada no querer poner un frame en una funcion. Para mi una process (en lineas generales) es una funcion que se ejecuta independientemente (no es exactamente eso, pero se me entiende).

Quote from: FreeYourMind on February 15, 2012, 10:22:25 PM
para que usas 2 whiles ? no te vale solo el primero?
El primer while espera a que el video inicie y el otro está mientras el video se ejecuta.

Quote from: josebita on February 16, 2012, 12:02:00 AM
Prueba a cambiar process.
Sigue sin ir.

No sé si te irá por fin o no... pero, ten en cuenta que el uso de funciones, aunque lo parezca, no es el mismo que el de un proceso (de ahí que se llamen de diferente manera). Con el proceso ya sabes que quedará funcionando una vez lo llamas a menos que lo mates o lo suicides (para el caso xD) Y la función, si la llamas, quedará funcionando el tiempo que la llames, y si pones frames, al ser independiente de un proceso, con que tenga un frame de más o de menos ya la habrás cagado, tío... je. A mí siempre me están recomendando hacer la mayor parte de los programas con procesos, si acaso con alguna función que me haga algo... un salto o lo que sea, pero que no requiera ningún frame o, como mucho uno, porque sino pasan cosas raras como que la pantalla se quede negra... Y eso ser'a porque, en el proceso donde llames a esa funci'on no haya un frame cercano o saliente de un while o mil cosas.

Por eso se recomienda el uso de procesos. Si no quieres tenerlos siempre funcionando, mátalos y se comportarán igual que una función (parecido) La única diferencia es esa, que tendrás que asegurarte de que matas al proceso antes de ejecutar otro, con la función como hagas algo mal, se te congelará todo el programa.

Suerte!
Esnucándote contra la pared no sé si conseguiré mucho, mejor lo pruebo y salímos de dudas ^_^
-------------------------------------------------------
Blaisantka Games > (Official developer web site)

josebita

No soy capaz de abrir el .rar que posteaste. ¿Podrías adjuntarlo al hilo?.

Yawin

Quote from: josebita on February 21, 2012, 10:25:52 PM
No soy capaz de abrir el .rar que posteaste. ¿Podrías adjuntarlo al hilo?.


Acabo de leer tu mensaje. Mira a ver si con este link:
http://www.mediafire.com/?yb54nyb8n39n46d
Sigue el desarrollo de mi motor RPG: https://www.youtube.com/watch?v=TbsDq3RHU7g

process main()
       begin
           loop
               pedo();
               frame;
            end
       end

Yawin

Ya no se cuánto tiempo llevo intentando corregir mi problema y nada. ¿Alguno ha tenido más suerte descubriendo que es lo que hace que todo vaya mal?
Sigue el desarrollo de mi motor RPG: https://www.youtube.com/watch?v=TbsDq3RHU7g

process main()
       begin
           loop
               pedo();
               frame;
            end
       end