Avances, Diario de...

Started by SplinterGU, April 17, 2008, 03:00:51 AM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

panreyes

¿No sería mejor una función aparte que fuese tipo "start_scroll_to_map(parametros de siempre)" y que devuelva un graph id?

Lo digo pa seguir con los métodos de siempre.

FreeYourMind

No habia dicho nada, pero Splinter estaba rompiendo la retrocompatibilidad de forma tan pancha, eso tiene mas sentido.

FreeYourMind

Quote from: SplinterGU on July 25, 2011, 11:44:24 PM
free, tu pregunta para que se repita, lo hace automatico, lo que pasa es que cada pixel del suelo representa un area grande.

dale altura a tu camara, y mira el suelo...

No entiendo, dices mayor m7[1].height ? No consigo que se repita la textura...

josebita

Quote from: FreeYourMind on July 26, 2011, 08:19:23 AM
No habia dicho nada, pero Splinter estaba rompiendo la retrocompatibilidad de forma tan pancha, eso tiene mas sentido.
Entiendo que las funciones anteriores siguen valiendo sin problemas, se habrán creado nuevas que aceptan esos parámetros.

panreyes

Quote from: josebita on July 26, 2011, 10:02:00 AM
Quote from: FreeYourMind on July 26, 2011, 08:19:23 AM
No habia dicho nada, pero Splinter estaba rompiendo la retrocompatibilidad de forma tan pancha, eso tiene mas sentido.
Entiendo que las funciones anteriores siguen valiendo sin problemas, se habrán creado nuevas que aceptan esos parámetros.
No es tan bestia xD

Puedes usar la función con los parámetros de siempre (obligatorios) y si quieres puedes añadir los opcionales nuevos xD

SplinterGU

Quote from: FreeYourMind on July 26, 2011, 08:19:23 AM
No habia dicho nada, pero Splinter estaba rompiendo la retrocompatibilidad de forma tan pancha, eso tiene mas sentido.

no rompi ninguna retrocompatibilidad.
Quote from: FreeYourMind on July 26, 2011, 09:35:04 AM
Quote from: SplinterGU on July 25, 2011, 11:44:24 PM
free, tu pregunta para que se repita, lo hace automatico, lo que pasa es que cada pixel del suelo representa un area grande.

dale altura a tu camara, y mira el suelo...

No entiendo, dices mayor m7[1].height ? No consigo que se repita la textura...

pasame tu ejemplo, y te lo adapto y te muestro.

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

SplinterGU

Quote from: josebita on July 26, 2011, 10:02:00 AM
Quote from: FreeYourMind on July 26, 2011, 08:19:23 AM
No habia dicho nada, pero Splinter estaba rompiendo la retrocompatibilidad de forma tan pancha, eso tiene mas sentido.
Entiendo que las funciones anteriores siguen valiendo sin problemas, se habrán creado nuevas que aceptan esos parámetros.

Quote from: PiXeL on July 26, 2011, 10:33:35 AM
Quote from: josebita on July 26, 2011, 10:02:00 AM
Quote from: FreeYourMind on July 26, 2011, 08:19:23 AM
No habia dicho nada, pero Splinter estaba rompiendo la retrocompatibilidad de forma tan pancha, eso tiene mas sentido.
Entiendo que las funciones anteriores siguen valiendo sin problemas, se habrán creado nuevas que aceptan esos parámetros.
No es tan bestia xD

Puedes usar la función con los parámetros de siempre (obligatorios) y si quieres puedes añadir los opcionales nuevos xD

exacto, lo entendieron todos menos Free... y que raro, siempre lanzando esos comentarios sin antes leer adecuadamente, puse la palabra "opcional" varias veces... :)
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

SplinterGU

PiXeL, con respecto a tu pregunta para que devuelva ya el mapa, no lo hice porque eso imposibilitaria que se escriban varios scrolls en el mismo mapa (en regiones diferentes, por ejemplo) o hacer un mode7, en el mismo mapa que un scroll (en otra region por ejemplo)
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

FreeYourMind


program test_mode7;

import "mod_wm"
import "mod_video"
import "mod_key"
import "mod_scroll"
import "mod_timers"
import "mod_time"
import "mod_text"
import "mod_string"
import "mod_mouse"
import "mod_map"
import "mod_proc"
import "mod_sound"
import "mod_file"
import "mod_rand"
import "mod_screen"
import "mod_grproc"
import "mod_draw"
import "mod_math"
import "mod_m7"
import "mod_say"

GLOBAL
    int graficos1;
    int color;
BEGIN
    //scale_mode=scale_nofilter;
full_screen = true;
    set_mode(1280, 800, 32);
    set_fps(50,0);
   
    graficos1=load_fpg("Modo732.fpg");
    say(itoa(graficos1));
   
    start_mode7(1,graficos1,1,0,0,64);
    //start_mode7(2,graficos1,3,0,0,64);
    //m7.color=rgb(0,128,255);
    m7[1].color=15;
    m7[1].camera=id;
    m7[1].height=119; //A cierta altura del fondo
    m7[1].distance=64;//23;//12; //23; //A cierta distancia del fondo original
    m7[1].focus=1024;//256; //128;
   
    /*m7[2].color=15;
    m7[2].camera=id;
   
    m7[2].height=-6; //A cierta altura del fondo
    m7[2].distance=12; //23; //A cierta distancia del fondo original
    m7[2].focus=1024; //256; //128;
    m7[2].z=m7[1].z-1;*/
    ctype=c_m7;
    //cflags=1;
   
    resolution=100;
   
    while (!key(_esc))

        color=map_get_pixel(graficos1,2,x/resolution,y/resolution);
        if (key(_up)) x+=500; end
        if (key(_down)) x-=500; end
        if (key(_left)) y-=500; end
        if (key(_right)) y+=500; end
        if (key(_c_minus) && m7[1].height>9)
            m7[1].height--;
            m7[2].height--;
        end
        if (key(_c_plus))
            m7[1].height++;
            m7[2].height++;
        end

        if (key(_w)) advance(100); end
        if (key(_s)) advance(-100); end
        if (key(_a)) angle+=2000; end
        if (key(_d)) angle-=2000; end
       
        if (key(_f1)) m7[1].focus--; end
        if (key(_f2)) m7[1].focus++; end
        if (key(_z)) m7[1].distance--; end
        if (key(_x)) m7[1].distance++; end
        if (key(_c)) m7[2].height--; end
        if (key(_v)) m7[2].height++; end
IF (key(_esc)) exit("", 0);END
        frame;
    end
    stop_mode7(1);
    //stop_mode7(2);
    let_me_alone();
END




Drumpi

Para que se repita un mapa, siempre se puede usar el gráfico exterior:
Un Modo7 puede usar dos mapas, uno que es el que se ve, que suele ser el nivel. Por fuera de ese gráfico se puede dejar transparente (color 0), poner un color liso (a elegir de la paleta... o con RGB en modos de video superiores), o bien un segundo mapa... que por cierto, tengo que probar porque me parece que sólo admite un único tamaño (8x8, si es más grande se recorta) y encima se dibujaba escalado, no lo sé.

Se puede usar este grafico exterior para que se repita... o aprovechar la nueva feature:
Si haces un scroll con un mapa que se repita cíclicamente, lo puedes dibujar sobre un mapa, ¡y usarlo en el modo7! Es más, puedes usar un scroll y utilizarlo como mapa del modo7, por lo que no necesitas mover un mapa de 2048 pixels de largo: con uno de 256 puedes representar los niveles tan largos como quieras (y no hacer virguerías como las mías en el TBM).

¿Qué tal juegos de plataformas para jugar dos en una WIZ, cada uno a un lado de la consola? Rotas el mapa del jugador1 -90º y el del jugador 2 90º y listo (ni cambios de coordenadas, ni rotaciones de gráficos...).
Y estas sólo son algunas ideas. Ya tengo previsto que en el PilotWing para CAANOO la pantalla rote con la consola (bueno, depende del rendimiento que le saque a la cosa ^^U).

Aun así, creo que Pixel tiene razón en parte: debería ser una función nueva, porque no entiendo cómo encaja "region" en la llamada... pero bueno, sería quitar una variable y añadir 2, por lo que se permite la sobrecarga (y tampoco cuesta nada poner un 0 en el parámetro region, pero no sé si eso es "elegante").
Sólo por curiosidad ¿Hay una razón de peso para que existan limitaciones en el número de scrolls y modos7, aparte del número de estructuras en memoria?
Hala, como con 1001 procesos sólo va a 9 FPS, vamos a meterle 32 veces más, a ver si revienta.
(Drumpi epic moment)

SplinterGU

muchacho... pixel no dijo nada de la region... que es lo complicado de entender con la region? la region es siempre sobre el target... el target normalmente es la pantalla, ahora el target es el mapa que se usa para renderear el scroll/m7... o sea, que las regiones son regiones dentro del mapa... como es logica y como tiene sentido.

la razon, entre tantas cosas, es no romper la retrocompatibilidad que tanto le molesta a free... (y que obviamente yo no estoy de acuerdo en romper) demas esta decir, que la cantidad de scrolls y modo7 que tiene es exagerada.
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

FreeYourMind

Aqui el fpg del ejemplo (cambia el grafico al 2 para que veas la pintura en movimiento de las anteriores imagenes, definición brutal xD)

http://dl.dropbox.com/u/33372657/Modo732.fpg

SplinterGU

Quote from: FreeYourMind on July 26, 2011, 12:58:35 PM

program test_mode7;

import "mod_wm"
import "mod_video"
import "mod_key"
import "mod_scroll"
import "mod_timers"
import "mod_time"
import "mod_text"
import "mod_string"
import "mod_mouse"
import "mod_map"
import "mod_proc"
import "mod_sound"
import "mod_file"
import "mod_rand"
import "mod_screen"
import "mod_grproc"
import "mod_draw"
import "mod_math"
import "mod_m7"
import "mod_say"

GLOBAL
   int graficos1;
   int color;
BEGIN
   //scale_mode=scale_nofilter;
full_screen = true;
   set_mode(1280, 800, 32);
   set_fps(50,0);
   
   graficos1=load_fpg("Modo732.fpg");
   say(itoa(graficos1));
   
   start_mode7(1,graficos1,1,0,0,64);
   //start_mode7(2,graficos1,3,0,0,64);
   //m7.color=rgb(0,128,255);
   m7[1].color=15;
   m7[1].camera=id;
   m7[1].height=119; //A cierta altura del fondo
   m7[1].distance=64;//23;//12; //23; //A cierta distancia del fondo original
   m7[1].focus=1024;//256; //128;
   
   /*m7[2].color=15;
   m7[2].camera=id;
   
   m7[2].height=-6; //A cierta altura del fondo
   m7[2].distance=12; //23; //A cierta distancia del fondo original
   m7[2].focus=1024; //256; //128;
   m7[2].z=m7[1].z-1;*/
   ctype=c_m7;
   //cflags=1;
   
   resolution=100;
   
   while (!key(_esc))

       color=map_get_pixel(graficos1,2,x/resolution,y/resolution);
       if (key(_up)) x+=500; end
       if (key(_down)) x-=500; end
       if (key(_left)) y-=500; end
       if (key(_right)) y+=500; end
       if (key(_c_minus) && m7[1].height>9)
           m7[1].height--;
           m7[2].height--;
       end
       if (key(_c_plus))
           m7[1].height++;
           m7[2].height++;
       end

       if (key(_w)) advance(100); end
       if (key(_s)) advance(-100); end
       if (key(_a)) angle+=2000; end
       if (key(_d)) angle-=2000; end
       
       if (key(_f1)) m7[1].focus--; end
       if (key(_f2)) m7[1].focus++; end
       if (key(_z)) m7[1].distance--; end
       if (key(_x)) m7[1].distance++; end
       if (key(_c)) m7[2].height--; end
       if (key(_v)) m7[2].height++; end
IF (key(_esc)) exit("", 0);END
       frame;
   end
   stop_mode7(1);
   //stop_mode7(2);
   let_me_alone();
END





free, ejemplo con recursos, como el que subi yo cuando me lo pediste.
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

SplinterGU

Quote from: FreeYourMind on July 26, 2011, 01:06:34 PM
Aqui el fpg del ejemplo (cambia el grafico al 2 para que veas la pintura en movimiento de las anteriores imagenes, definición brutal xD)

http://dl.dropbox.com/u/33372657/Modo732.fpg

ahora si, gracias.
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

SplinterGU

Quote from: Drumpi on July 26, 2011, 12:59:01 PM
Para que se repita un mapa, siempre se puede usar el gráfico exterior:
Un Modo7 puede usar dos mapas, uno que es el que se ve, que suele ser el nivel. Por fuera de ese gráfico se puede dejar transparente (color 0), poner un color liso (a elegir de la paleta... o con RGB en modos de video superiores), o bien un segundo mapa... que por cierto, tengo que probar porque me parece que sólo admite un único tamaño (8x8, si es más grande se recorta) y encima se dibujaba escalado, no lo sé.

Se puede usar este grafico exterior para que se repita... o aprovechar la nueva feature:
Si haces un scroll con un mapa que se repita cíclicamente, lo puedes dibujar sobre un mapa, ¡y usarlo en el modo7! Es más, puedes usar un scroll y utilizarlo como mapa del modo7, por lo que no necesitas mover un mapa de 2048 pixels de largo: con uno de 256 puedes representar los niveles tan largos como quieras (y no hacer virguerías como las mías en el TBM).

¿Qué tal juegos de plataformas para jugar dos en una WIZ, cada uno a un lado de la consola? Rotas el mapa del jugador1 -90º y el del jugador 2 90º y listo (ni cambios de coordenadas, ni rotaciones de gráficos...).
Y estas sólo son algunas ideas. Ya tengo previsto que en el PilotWing para CAANOO la pantalla rote con la consola (bueno, depende del rendimiento que le saque a la cosa ^^U).

Aun así, creo que Pixel tiene razón en parte: debería ser una función nueva, porque no entiendo cómo encaja "region" en la llamada... pero bueno, sería quitar una variable y añadir 2, por lo que se permite la sobrecarga (y tampoco cuesta nada poner un 0 en el parámetro region, pero no sé si eso es "elegante").
Sólo por curiosidad ¿Hay una razón de peso para que existan limitaciones en el número de scrolls y modos7, aparte del número de estructuras en memoria?

drumpi, demas esta decir que podes jugar con el ejemplo que puse para ver como trabaja la region dentro del mapa.
Download Lastest BennuGD Release: http://www.bennugd.org/node/2