A PAck of classic GAMEs for BEnnugd

Started by DCelso, November 05, 2008, 12:03:38 AM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

SplinterGU

tyco estaba con el pacman desde tiempo atras, supongo que hizo su version propia.
pero si el tuyo es algo diferente ponlo sin problemas... o puedes ponerle los graficos del ms. pac-man o del pac-man jr.
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

TYCO

laghengar:

Cierto que dije que tenía el PacMan pendiente, y no tenía mucho tiempo, entonces llegaste tú con que también estabas haciendolo, por eso te anime a incluirlo si querias. Siempre puede haber otra versión del PacMan para aprender mejor del código.

SplinterGU:

Algo me suena de eso, lo miro para añadir ese efecto de memoria de tecla.

PD: No sé si hacer los juegos tan completos... se sale de la Norma del Apagame, que supuestamente era para que los novatos aprendieran con poco código. Aunque también es verdad que yo en su día vote por hacer mini-juegos completos con detalle.
Programador, Escritor/Guionista y Deportista.

Todo Modo Gráfico tiene por detrás una Línea de Comandos.

SnowCraft Remake (100%)
Rally Mortal (87%)

DCelso

#287
Sí es verdad. Cada vez los juegos que se añaden son más competitivos.
Ya casi me da miedo meter un juego mio para eso de no bajar el nivel :D.
Yo puse eso de hacer una fase nada mas dejando ver como se hacen nuevas fases, etc. Pero está claro que está bien que haya de todos los niveles un poco ¿no?. Sin pasarse, claro está, no vayamos a meter un diablo 3 entero.
Monstruos Diabólicos

"A PAck of classic GAMEs For BennuGD" en desarrollo
http://code.google.com/p/apagame4be/

SplinterGU

En realidad solo debes guardar la ultima tecla almacenada, hasta que se pueda cumplir... cuando se produzca el movimiento, adios ultima tecla.

No es tanto nivel de detalle, y tampoco es complicado.

Dcelso, la idea de esto recorda que es para que los usuarios iniciados tengan juegos de ejemplo, asi que no es tanto juegos de calidad, sino que se entiendan facilmente, ahora si son de calidad, entonces mejor.
A esta consigna, se me ocurre que seria mejor tener los juegos separados, que usen un set de librerias (includes) pero que sean separados, con un menu lanzador donde se puedan agregar los juegos con simplemente agregarlos a un archivo de configuracion, algo asi como el scummvm o el mame... al tener tantos se esta empezando a complicar el codigo, mas para un novato.
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

Prg

QuoteA esta consigna, se me ocurre que seria mejor tener los juegos separados, que usen un set de librerias (includes) pero que sean separados, con un menu lanzador donde se puedan agregar los juegos con simplemente agregarlos a un archivo de configuracion, algo asi como el scummvm o el mame... al tener tantos se esta empezando a complicar el codigo, mas para un novato.

estaría genial, no habría problemas de que no descargó todo adecuadamente, o que hay muchas globales, o que... con uno sólo exect, y cargar un dat para los valores de opciones,

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

SplinterGU

yo diria:

1) un lanzador en la carpeta principal llamado "apagame4be"
2) 1 carpeta para las funciones en comun (funciones de lectura de configuracion, guardar puntuaciones, etc)
3) 1 carpata por cada juego (con sus recursos incluidos dentro, que deben respetar una distribucion determinada, esto es, los mismos nombres que se tiene actualmente)


Este lanzador podria tomar los juegos disponibles leyendo un archivo de configuracion o bien usando la funcion glob para determinar que carpetas se encuentran en su directorio de trabajo (donde se encuentra el lanzador), excluyendo la carpeta de recursos en comun y recursos del lanzador. Creo que esta opcion seria la mas adecuada y no implicaria tocar nada del lanzador con cada nuevo juego que agregamos.
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

DCelso

Es verdad, se me está yendo de las manos, lo siento. El proyecto que comentas es my pretencioso, podría ser un SUPER apagame.
Cre que se escapa de la finalidad que quería darle yo a éste.
Si tuviera tiempo haría un fork o proyecto a parte para ese que comentas.
Yo voy a intentar seguir con este proyecto, ahora mas o menos va bien, los juegos van incrementando dificultad poco a poco, pero no llegan a ser juegos completos sino, más bien juegos didácticos.
Cerraremos la entrada a juegosde más de una fase y con demasiada complejidad, por ahora, hasta que no haya proyecto hijo.
Monstruos Diabólicos

"A PAck of classic GAMEs For BennuGD" en desarrollo
http://code.google.com/p/apagame4be/

SplinterGU

Pero que va a ser pretencioso... al contrario...
Lo hago yo y luego te lo paso... incluso, si queres separo los juegos... vamos que es como robarle un dulce a un niño... :P
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

DCelso

Hombre, pues gracias si lo haces.Te meto en el proyecto o que, necesitaría tu gmail cuenta.
Si insistes, pero que no hace falta, en serio, no quiero robarte tiempo del proyecto principal, que es el bueno bueno para todos. :D.


Monstruos Diabólicos

"A PAck of classic GAMEs For BennuGD" en desarrollo
http://code.google.com/p/apagame4be/

laghengar

#294
Bueno a mi me está interesando bastante el tema: agarrar juegos antiguos y hacerlos en bennu explicando como lo he hecho. Viendo que no puedo para nada desarrollar algún juego que se me pasa por la cabeza . A ver si puedo meter algo, este apágame tiene una fecha??? Espero que no, me voy a estresar.

Espero que así esté mejor explicado.  :P

Un saludo.
!!!Blender Blender Blender yuhuuuuuuu¡¡¡ novato o_O

Prg

Quoteeste apágame tiene una fecha??
no amigo, por fortuna creo que no :)
en humos puedes mover la camara con los cursores. es necesario para los niveles a partir del dos :)

SplinterGU

Quote from: laghengar on April 29, 2009, 11:54:16 AM
Bueno a mi me está interesando bastante el tema, viendo que no puedo para nada desarrollar algún juego que se me pasa por la cabeza, agarrar juegos antiguos y hacerlos en bennu explicando como lo he hecho. A ver si puedo meter algo, este apágame tiene una fecha??? Espero que no, me voy a estresar    :'(

Queres decir que queres hacer el lanzador?
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

laghengar

No he entendido lo del lanzador. A que te refieres?
!!!Blender Blender Blender yuhuuuuuuu¡¡¡ novato o_O

SplinterGU

Quote from: laghengar on April 29, 2009, 11:54:16 AM
Bueno a mi me está interesando bastante el tema, viendo que no puedo para nada desarrollar algún juego que se me pasa por la cabeza, agarrar juegos antiguos y hacerlos en bennu explicando como lo he hecho. A ver si puedo meter algo, este apágame tiene una fecha??? Espero que no, me voy a estresar    :'(

No entendi que quisiste decir con esto...
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

SplinterGU

#299
Lo prometido es deuda...

Aca te dejo el codigo del lanzador basico del apagame4be.

Por ahora, hasta que no solucione el tema de la recuperacion del foco en la move_windows, dejare comentada las funciones de minimizado y restore cuando se lanza un juego.

La idea basica consiste, en tener una carpeta "games" con varias carpetas, 1 por juego. Esta version inicial requiere que los juegos se llamen igual que la carpeta y sean .dcb.
Se requiere el bgdi para ejecutar los dcb.
El siguiente paso seria ponerle un skin, si tienen un logo del proyecto se puede hacer un marco con el mismo, poner un font adecuado, como asi tambien que el menu sea una ventana de scroll. El salir podria ser un boton del skin.

Espero que sirva de algo, si no es para el proyecto, para cualquier uso.

Saludos.

[code language="bennu"]
//-------------------------------------------------------------------
// PROJECT: Classic Pack Games For Bennu.
// PROGRAM: apagame4be (launcher)
// AUTHOR/S: SplinterGU
// CREATION DATE: 2009/04/30
// REVISION:
// VERSION:
//-------------------------------------------------------------------

PROGRAM apagame4be; // clAssic PAck GAMEs for BEnnugd

CONST
    VERSION = "0.4";

    SCREEN_WIDTH = 800;
    SCREEN_HEIGHT = 600;
    SCREEN_DEPTH = 16;
    FPS_GAME = 25;

//******************************************************************************************************
// CODIGO INICIAL DEL PROGRAMA
//******************************************************************************************************

PRIVATE
    int i;
    int option=0;
    int textsTemp[100];
    int num_option;

    int selected=0;
    string * game_name = NULL;
    string args[10];
    string currdir;
    int ret;
BEGIN
    // SETEAMOS LA PANTALLA
    set_mode(SCREEN_WIDTH,SCREEN_HEIGHT,SCREEN_DEPTH);
    set_fps(FPS_GAME,0);
    set_title("Classic Pack Games For BennuGD v" + VERSION);

    // OBTENEMOS LA RESOLUCION DE PANTALLA Y LA CENTRAMOS LA VENTANA EN LA PANTALLA
    get_desktop_size(&x,&y);
    set_window_pos((x/2)-(SCREEN_WIDTH/2),(y/2)-(SCREEN_HEIGHT/2));

    while(glob("games/*.*") != "")
        if(fileinfo.directory && fileinfo.name != "." && fileinfo.name != "..");
            game_name = realloc(game_name, ( num_option + 1 ) * sizeof ( *game_name ));
            game_name[num_option++] = fileinfo.name;
        end
    end

    game_name = realloc(game_name, ( num_option + 1 ) * sizeof ( *game_name ));
    game_name[num_option++] = "Salir";

    For (i=0;i<num_option;i++)
        textsTemp=write(0,SCREEN_WIDTH/2,50+(i*10),4,game_name);
    End
    selected = selected_line(SCREEN_WIDTH/2,50);

    While(!key(_ESC))

        if ( key(_UP) )
            option--;
            selected.y-=10;
            If (option < 0)
                option=0;
                selected.y+=10;
            End
            timer[0] = 0;
            while(timer[0]<10 && key(_UP) ) frame; end
        End

        if ( key(_DOWN) )
            option++;
            selected.y+=10;
            If (option >= num_option)
                option=num_option-1;
                selected.y-=10;
            End
            timer[0] = 0;
            while(timer[0]<10 && key(_DOWN) ) frame; end
        End

        if ( key(_ENTER) )
            if ( option == num_option - 1 )
                break;
            end

            while (key(_ENTER)) frame; end

            signal(id, S_SLEEP_TREE);
            signal(id, S_WAKEUP);

            currdir = cd();
            chdir ("games/"+ game_name[option] );

//            minimize();

            args[0] = game_name[option];
            ret = exec( _P_WAIT, "bgdi", 1, &args );

            chdir (currdir);

            frame;

//            set_window_pos((x/2)-(SCREEN_WIDTH/2),(y/2)-(SCREEN_HEIGHT/2));

            while (key(_ESC)) frame; end

            signal(id, S_WAKEUP_TREE);
        End

        Frame;
    end

    let_me_alone();

    exit("Gracias por Jugar a Classic Pack Games For Bennu.\n",0);

END

PROCESS selected_line (int x, int y)
BEGIN
    graph = new_map(200,10,SCREEN_DEPTH);
    map_clear(0,graph,rgb(0,128,0));
    Loop
        Frame;
    End
    unload_map(0,graph);
END
[/code]

EDIT: Fixed!
Download Lastest BennuGD Release: http://www.bennugd.org/node/2