Tontadas y pamplinas + Otras dudas

Started by Futu-block, August 19, 2016, 01:28:24 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Drumpi

Quote from: Futu-block on January 26, 2020, 01:30:13 PM
Otra mas, como crear una ruta a la carpeta anterior, por ejemplo si yo quiero guardar un png en la carpeta que contiene hago esto:


//SAVE_PNG(0,100,"Foto.png")


ya se que eso vá en la ''carpeta madre'' y si quiero dentro de una carpeta hago "/carpeta/foto.png" pero si fuera para arriba?? a la carpeta ''abuela''

Otra; Tengo que poner el primer valor como 0 porque si pongo el nombre del fpg no sale bien, ¿es normal o me estoy saltando algo?


Nota mara mi mimo:
-La imagen se guarda donde esté el .dcb
Quote from: Futu-block on January 26, 2020, 01:30:13 PM

SAVE_PNG(0,100,"Foto.png") te guarda la imagen en donde tienes el .dcb (salvo que hayas usado CD para cambiar la ruta)
SAVE_PNG(0,100,"erfuto/Foto.png") te guarda la imagen en una carpeta llamada "erfuto" que está en la misma ruta que el .dcb
SAVE_PNG(0,100,"../Foto.png") te guarda la imagen en la carpeta superior al .dcb.

Ejemplo: si el dcb está en la ruta C:/c1/c2/c3
SAVE_PNG(0,100,"Foto.png") te la guarda en C:/c1/c2/c3
SAVE_PNG(0,100,"erfuto/Foto.png") te la guarda en C:/c1/c2/c3/erfuto
SAVE_PNG(0,100,"../Foto.png") te la guarda en C:/c1/c2
SAVE_PNG(0,100,"../../Foto.png") te la guarda en C:/c1

¡OJO! Es responsabilidad tuya asegurarte de que existen las carpetas.


Será un lío, pero léete la wiki porque vas a aprender más de lo que andas buscando:
http://wiki.bennugd.org/index.php?title=Fpg_save
Según eso necesitas dos valores: el FPG_ID (el valor que te devuelve FPG_LOAD o FPG_NEW) y la ruta-nombre del fichero.
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)

Futu-block

osea, que me he respodí yo mismo a la misma hora?? lol

gracias drump

Drumpi

Lol. No sé si el foro se ha vuelto tonto, o el que se ha vuelto tonto soy yo :D
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)

Futu-block

Mas cosas:

Quiero guardar determinados gráficos de un fpg con tal numeración en otro fpg con la misma numeración...
¿hay algo sencillo que lo haga en plan add_fpg_inside_oldfpg o algo así?
yo tengo una función que los vá añadiendo, pero como coincide el mismo número de gráfico digo yo que igual hay algo...

y segundo:

Quiero comprobar si existe el archivo ''tal.fpg'' y si existe que lo cargue, pero lo quiero asi tal como lo digo, no de esta otra forma:
if (file_exists("tal.fpg")) fpg_tal = load_fpg("tal.fpg"); end

en plan '' if (file_exists("tal.fpg")) load_it
¿existe alguna función asi o me la estoy inventando? porque creo que es buena idea

Drumpi

#229
Sí, en ambos casos se llaman igual: variables :D

En tu primer caso, podría ser algo como esto:
int pos;
int fpgOrigen;
int fpgDestino;

pos = 1;
fpgOrigen = load_fpg("mi.fpg");
fpgDestino = new_fpg();

for (pos = 1; pos < 1000; pos++)
    if (map_exists(fpgOrigen, pos))
        fpg_add(fpgDestino, pos, fpgOrigen, pos);
    end
end



En el segundo caso:
string nombreFichero = "tal.fpg"
int fpgTal;
if (file_exists(nombreFichero)) fpgTal = load_fpg(nombreFichero); end



No puedes usar menos instrucciones, primero porque file_exists no sabe qué tipo de fichero es para cargarlo (¿es un FPG, on MAP, un MP3?), y segundo, porque load_fpg sólo entiende a los ficheros FPG.
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)

Futu-block

Vamos por partes, Llaq el destripeitor...

En el primer caso,  son imágenes del fpg que tiene que entrar en el nuevo con la misma numeración, por lo que parece no existe tal función directa y la tengo que crear yo, que es parecido al que has puesto pero con el numero fijo  ya que va ahora mismo ''manualmente'' (pega los archivos fpg a tu gusto en la carpeta) y luego ya habrá otro programa que lo haga automáticamente

Quote from: Drumpi on February 26, 2020, 03:05:30 PM
Sí, en ambos casos se llaman igual: variables :D

En tu primer caso, podría ser algo como esto:
int pos;
int fpgOrigen;
int fpgDestino;

pos = 1;
fpgOrigen = load_fpg("mi.fpg");
fpgDestino = new_fpg();

for (pos = 1; pos < 1000; pos++)
    if (map_exists(fpgOrigen, pos))
        fpg_add(fpgDestino, pos, fpgOrigen, pos);
    end
end



En el segundo caso:
string nombreFichero = "tal.fpg"
int fpgTal;
if (file_exists(nombreFichero)) fpgTal = load_fpg(nombreFichero); end



No puedes usar menos instrucciones, primero porque file_exists no sabe qué tipo de fichero es para cargarlo (¿es un FPG, on MAP, un MP3?), y segundo, porque load_fpg sólo entiende a los ficheros FPG.

Quizas en este me estoy complicando demasiado para que me sea mas fácil o que he visto demasiados tutos de python y creo que todo se simplifica, pero que era eso aproximadamente lo que tenía, y si, son archivos fpg para el editor de caras


Futu-block

Aunque pienso que se puede hacer de la siguiente forma, creo que no se debe de hacer asi ¿no?

Cuando se dice que cargue tal.fpg y existe se carga, si no existe no se carga, ergo ¿para que se pregunta si existe?

Creo que SI se debe preguntar, ¿porque? pos ni idea, si no se pregunta puede dar fallos o algún bug o cualquier otra cosa ¿no?

FreeYourMind

para que preguntar si ya la carga en si hace la pregunta internamente

Drumpi

Es cierto que si el fichero no existe, LOAD_FPG devuelve -1 y te puedes ahorrar la comprobación.
Pero hay otros motivos por los que puede devolver -1: el fichero no es un FPG, el formato no es correcto, hay algún tipo de error, la profundidad de color no es compatible con el modo de video... Si se quiere control total, es una buena costumbre hacer la pregunta, sobre todo cuando hablamos de editores que generan los ficheros, o que pueden cargar ficheros externos (es decir, que no se han creado específicamente para el programa y que se han testeado hasta la saciedad).

Por lo general, es una buena práctica preguntar si algo (fichero, variable, proceso...) existe y/o ha sido inicializado antes de hacer nada con él, aunque no siempre es necesario.
Es buena práctica porque ayuda a localizar errores, pero una vez que ya los tienes todos, o estás seguro al 100% de que no va a dar error, ya no sería necesario.

Ya eso se lo dejamos a las buenas maneras o a la vaguería de cada uno :D
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)

Futu-block

¿Como funciona el ''exists''?
le tengo que poner la admiración delante para que me lo lea:

algo estoy haciendo mal, porque en el ¡¡Jarl!! lo tengo al contrario:


No se, en este juego nuevo (punkarra) pregunto antes de cargar y en el anterior (¡¡Jarl!!) pregunto antes de cambiar de estado y allí cargar...
Voy a hacerlo tipo ¡¡Jarl!! a ver si no me dá el mismo problema o si la ''particularidad'' de exists es no cargar a continuación...o igual reinicio el pc, lol



Futu-block

edito:
aunque ambas están mal (creo) he probado con file_exists y va bien...

pero ¿porque son distintas? yo comprendo que en una me funcionase porque al poner que preguntaba que no, al no haberlo porque no era lo correcto, seguía palante...

en fin...

Drumpi

Sólo te voy a decir una cosa, así lo investigas: no es lo mismo EXISTS, que FEXISTS, que FILE_EXISTS. Son funciones diferentes que hacen cosas diferentes. Busca en la wiki de Bennu (no seas flojo, que poniendo en google "Bennugd" + nombre de la función, te sale el primero).

Hala, ya tienes entretenimiento para la reclusión forzosa :D
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)

Futu-block

Joño, no me había dao cuen que en uno pongo !exists y en otro Fexists...

es de crimen, pero de los errores se aprenden

Futu-block

Estoy haciendo pruebas de lecturas del joystic de la caanoo pero tengo problemas creo que con 'Scan_code' ¿es eso posible?
porque los demás botones funcionan si no estan relacionado con el proceso portador de la orden 'Scan_code'

Drumpi

Las direcciones del joystick están mapeados a los cursores, pero también al Joystick.

A groso modo, para obtener si una dirección de la Caanoo está pulsado se puede usar el comando de la Lib_joy

joy_getbutton(0, CONSTANTE);
Donde 0 es el número del joystick (Caanoo, Wiz y GP2X mapean el joy cero a la cruceta/joystick, recordemos que algunas de ellas usan 8 botones para ello) y la constante uno de los siguientes valores:

CONST
    _GP2X_JKEY_UP        =  0 ;
    _GP2X_JKEY_UPLEFT    =  1 ;
    _GP2X_JKEY_LEFT      =  2 ;
    _GP2X_JKEY_DOWNLEFT  =  3 ;
    _GP2X_JKEY_DOWN      =  4 ;
    _GP2X_JKEY_DOWNRIGHT =  5 ;
    _GP2X_JKEY_RIGHT     =  6 ;
    _GP2X_JKEY_UPRIGHT   =  7 ;
    _GP2X_JKEY_START     =  8 ;
    _GP2X_JKEY_SELECT    =  9 ;
    _GP2X_JKEY_L         = 10 ;
    _GP2X_JKEY_R         = 11 ;
    _GP2X_JKEY_A         = 12 ;
    _GP2X_JKEY_B         = 13 ;
    _GP2X_JKEY_X         = 14 ;
    _GP2X_JKEY_Y         = 15 ;
    _GP2X_JKEY_VOLUP     = 16 ;
    _GP2X_JKEY_VOLDOWN   = 17 ;
    _GP2X_JKEY_CLICK     = 18 ;


OJO, las tres consolas consideran las diagonales diferentes a las 4 direcciones principales, por lo que si se activa el botón _GP2X_JKEY_UPLEFT, tanto UP como LEFT estarán desactivados... Bueno, puede darse el caso en GP2X de que _GP2X_JKEY_UPLEFT y _GP2X_JKEY_UP se activen a la vez, y den como resultado hasta 16 posibles direcciones si se programa bien.

Tú que tienes el código de varios juegos que hemos hecho para Wiz y Caanoo, busca en la carpeta "input" los ficheros "jkey.h" y "jkey_gp2x.inc", no debería ser excesivamente difícil entender cuándo se activan las direcciones ;)
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)