Bueno, acabo de empezar el Worms que dije que iba a hacer y en un ratito completé ya gran parte del sistema de durezas. En si, mi idea es hacer este juego a código abierto para que sirva de ejemplo para el resto de la comunidad
Acá les subo una Beta muy temprana, les dejo los controles:
A: Mover al Worm a la izquierda.
B: Mover al Worm a la derecha.
Teclas de movimiento: Mover el círculo gigante.
Tecla +: Agrandar el círculo.
Tecla -: Achicar el círculo.
Teclas Avpág, repág, Inicio y Fin: Modificar los valores size_x y size_y del círculo.
Tecla Backspace: Borrar el escenario donde está posado el círculo.
Tecla Enter: Crear escenario donde está posado el círculo.
Muy buena la función map_xxput que me permitió manejar muy bien la creación del mapa
Me encanta ese gusano, yo creo que de donde has sacado al gusano (será del Worms o del Worms 2) son los mejores juegos en 2D del worms, cuando pasaron al 3D no me gustaba nada.
Dos cosas del código, al ser open no he podido evitar mirarlo XD:
define_region(1,0,0,MODE_INFO(mode_width),MODE_INFO(mode_height)); eso ya es la región 0 por defecto, por qué creas otra región del mismo tamaño???
En PROCESS worm(x,y,equipo); haces: fichero_local=load_fpg("FPG/Worms.fpg");, si es un sólo gusano podría valer, pero conociendo el juego, sabemos que habrá varios gusanos y cargarías el mismo FPG una varias veces en memoria, por qué no cargas ese FPG en el MAIN??? incluso si cada gusano tuviera distinto FPG... yo lo cargaría en el MAIN los que me hicieran falta en el nivel 1, luego en el nivel 2 los que necesitara, en el nivel 3... etc.
Aunque yo creo que buscas ambas cosas en ese PRG, que ponga durezas (poner rampas, etc) y luego quitar durezas que es cuando hace agujeros como ese circulo con las explosiones.
Me encanta la idea de ese juego en Gemix, gracias por traerlo a Gemix.
Todo Modo Gráfico tiene por detrás una Línea de Comandos.
el gusano es del worms world party yo lo tengo para PC
E probado el test.
esta muy bien programado.
El circulo verde esta muy bien
pero hay una cosa que no me queda claro, como pintas el fondo de pantalla como color "negro" ?? si el grafico del circulo es de color blanco!
que yo sepa, NO es posible pintar con color transparente, solo se pueden pintar colores rigidos.
has probado de poner un fondo de pantalla,un scroll.
es decir, tenemos un grafico opaco, y queremos usar ese grafico opaco para pintar esa forma de color transparente.
es como la goma del photoshop, que eliges el grosor/forma y pintas el dibujo, borrando con esa forma.
es el efecto invertido de pintar.
You do not have the required permissions to view the files attached to this post.
Te felicito por el tipo de juego y por la iniciativa de dejarlo open source para la comunidad, yo lamentablemente no he podido probarlo aun, ya sabeis el porque, aunque cuanto antes lo probare.
Buenas, me alegra que les halla gustado esta hipertemprana beta.
TYCO wrote:Me encanta ese gusano, yo creo que de donde has sacado al gusano (será del Worms o del Worms 2) son los mejores juegos en 2D del worms, cuando pasaron al 3D no me gustaba nada.
Worms2, Armaggedon y World Party son los que usaron estos gráficos. Coincido conque Worms+3D = EPIC FAIL.
TYCO wrote:Dos cosas del código, al ser open no he podido evitar mirarlo XD:
define_region(1,0,0,MODE_INFO(mode_width),MODE_INFO(mode_height)); eso ya es la región 0 por defecto, por qué creas otra región del mismo tamaño???
En un principio tenía pensado hacer una pantalla partida para mover la cámara en una de las dos, pero creo que voy a desechar la idea porque me parece incómodo. Por eso defini la región, porque más adelante iba a usar dos regiones.
TYCO wrote:En PROCESS worm(x,y,equipo); haces: fichero_local=load_fpg("FPG/Worms.fpg");, si es un sólo gusano podría valer, pero conociendo el juego, sabemos que habrá varios gusanos y cargarías el mismo FPG una varias veces en memoria, por qué no cargas ese FPG en el MAIN??? incluso si cada gusano tuviera distinto FPG... yo lo cargaría en el MAIN los que me hicieran falta en el nivel 1, luego en el nivel 2 los que necesitara, en el nivel 3... etc.
Jeje, esto lo hice por otro motivo. Cada gusano va a usar 6 FPGs distintos, uno para cuando se camina en terreno recto, dos para cuando se camina en rampas y otros tres de la misma forma para cuando el gusano está enfermo. Por eso los cargué en el proceso del gusano, porque son 6 FPG y posiblemente halla más. De todas formas, se pueden pasar al MAIN, tengo que ver que conviene. Gracias por el comentario ^^
TYCO wrote:Aunque yo creo que buscas ambas cosas en ese PRG, que ponga durezas (poner rampas, etc) y luego quitar durezas que es cuando hace agujeros como ese circulo con las explosiones.
No entendí esta parte... ¿a que te referís?
TYCO wrote:Me encanta la idea de ese juego en Gemix, gracias por traerlo a Gemix.
Gracias a vos por probarlo y ayudar con las opiniones
simulatorone wrote:el gusano es del worms world party yo lo tengo para PC
E probado el test.
esta muy bien programado.
Gracias, simulatorone
simulatorone wrote:El circulo verde esta muy bien
pero hay una cosa que no me queda claro, como pintas el fondo de pantalla como color "negro" ?? si el grafico del circulo es de color blanco!
que yo sepa, NO es posible pintar con color transparente, solo se pueden pintar colores rigidos.
has probado de poner un fondo de pantalla,un scroll.
es decir, tenemos un grafico opaco, y queremos usar ese grafico opaco para pintar esa forma de color transparente.
es como la goma del photoshop, que eliges el grosor/forma y pintas el dibujo, borrando con esa forma.
es el efecto invertido de pintar.
Es que no pinto de color transparente. El círculo se pinta de color blanco (es el mismo círculo que se ve en el cursor), la diferencia es que luego reemplazo el color blanco con el negro absoluto (RGB(0,0,0)) utilizando la función map_set_color:
De esta forma, el lugar que ocupaba el color blanco lo reemplazo con negro absoluto y de esa forma se logra la transparencia en el borrado.
CicTec wrote:Hola Dluk,
Te felicito por el tipo de juego y por la iniciativa de dejarlo open source para la comunidad, yo lamentablemente no he podido probarlo aun, ya sabeis el porque, aunque cuanto antes lo probare.
Gracias, CicTec, la idea es que sirva de ejemplo, elegí justamente un juego que use durezas para aplicar lo que aprendí con el Megaman y compartirlo con todos
Saludos ^^
"El destino es como un juego... ¿No? Y ahora, esperas mi último movimiento"
simulatorone wrote:El circulo verde esta muy bien
pero hay una cosa que no me queda claro, como pintas el fondo de pantalla como color "negro" ?? si el grafico del circulo es de color blanco!
que yo sepa, NO es posible pintar con color transparente, solo se pueden pintar colores rigidos.
has probado de poner un fondo de pantalla,un scroll.
es decir, tenemos un grafico opaco, y queremos usar ese grafico opaco para pintar esa forma de color transparente.
es como la goma del photoshop, que eliges el grosor/forma y pintas el dibujo, borrando con esa forma.
es el efecto invertido de pintar.
Es que no pinto de color transparente. El círculo se pinta de color blanco (es el mismo círculo que se ve en el cursor), la diferencia es que luego reemplazo el color blanco con el negro absoluto (RGB(0,0,0)) utilizando la función map_set_color:
De esta forma, el lugar que ocupaba el color blanco lo reemplazo con negro absoluto y de esa forma se logra la transparencia en el borrado.
Lo digo, por que al ser 100% en modo 32bits se considera opaco, no es transparente, y no podras poner una imagen de fondo/o un scroll.
Lo ideal es pintarlo al 100% transparente, no negro.
para el mapa de durezas pasa, pero como decorado para el nivel... lo tendras dificil...
En el juego de worms parece super facil.
Yo logre pintar pixeles transparentes,en sprites del juego del PUSH, usando un grafico opaco, y pintarlo pixel por pixel.... algo muy forzoso para la CPU.
lo usan los bloques que se destrullen.
Poder se puede, pero yo de momento pude hacerlo pintando pixel a pixel los sprites con transparencias.
No, me parece que estás equivocado, yo pinto las partes blancas con el color que se ignora en Gemix, que es el RGB(0,0,0). Fijate sino, probá esta versión nueva:
//VARIABLE QUE DEVUELVE EL TIPO DE RAMPA (MAS BIEN DE SUELO) QUE SE ESTA PISANDO
tipo_rampa;
//CONTADOR DE PIXELES, PARA VER CUANTOS PIXELES CORRELATIVOS HAY EN UNA MISMA LINEA VERTICAL
contador=1*resolucion_global;
//VARIABLE QUE INDICA HASTA CUANTOS PIXELES SE CONSIDERA RAMPA DESCENDENTE Y NO ABISMO
maximo_soporte_rampa_abajo=10*resolucion_global;
//VARIABLE QUE INDICA HASTA CUANTOS PIXELES SE CONSIDERA RAMPA ASCENDENTE Y NO PARED
maximo_soporte_rampa_arriba=10*resolucion_global;
BEGIN
//CONTROL PARA RAMPAS QUE BAJAN
IF(control_dureza_suelo(x,y)==TRUE AND control_dureza_suelo(x+direccion,y)==FALSE)
WHILE(contador<=maximo_soporte_rampa_abajo)
IF(control_dureza_suelo(x+direccion,y+contador)==TRUE)
tipo_rampa=RAMPA_ABAJO;
father.conteo_rampa=contador;
contador=maximo_soporte_rampa_abajo;
END
contador+=100;
END
IF(tipo_rampa==0)
tipo_rampa=SUELO_LLANO;
END
END
//CONTROL PARA RAMPAS QUE SUBEN
IF(control_dureza_suelo(x,y)==TRUE AND control_dureza_suelo(x+direccion,y)==TRUE)
WHILE(contador<=maximo_soporte_rampa_abajo)
IF(control_dureza_suelo(x+direccion,y-contador)==TRUE)
tipo_rampa=RAMPA_ARRIBA;
father.conteo_rampa=contador;
END
contador+=100;
END
//SI SE EXCEDE EL MAXIMO DE ESCALADA PERMITIDO, INDICA QUE HAY PARED
IF(control_dureza_suelo(x+direccion,y-contador)==TRUE)
tipo_rampa=PARED;
END
//SI NO SE DAN NINGUNA DE LAS OTRAS CONDICIONES, EL SUELO ES LLANO
IF(tipo_rampa==0)
tipo_rampa=SUELO_LLANO;
END
END
RETURN(tipo_rampa);
END[/Codebox]
Necesitás descargar el FPG que te adjunto acá y pegarlo en la carpeta FPG. Probá después a borrar con el círculo parte del mapa y vas a ver como aparece el fondo.
You do not have the required permissions to view the files attached to this post.
"El destino es como un juego... ¿No? Y ahora, esperas mi último movimiento"