Bennu Game Development

Foros en Español => Mesa de Ayuda => Topic started by: Futu-block on March 14, 2010, 10:09:04 AM

Title: Caracoladas
Post by: Futu-block on March 14, 2010, 10:09:04 AM
he decidido reformar el juego de los caracoles, pero mientras me dedico a ello salen dudas que no me resuelve el manual de osk...

por ejemplo, como hago para que se vea el cursor o flechita o lo que le quiera poner al raton para verlo en pantalla...

misteriosamente lo he hecho funcionar y me acepta bien las colisiones con objetos pero mientras no vea el cursor probandolo en el pc, me sigue descontrolando...

hablais de eso en algun hilo?¿??, estoy buscandolo y nasty...

sigo buscando
Title: Re: Caracoladas
Post by: Hokutoy on March 14, 2010, 11:34:50 AM
Hay 2 opciones.

1- Usar mouse.graph=... para indicar el grafico del cursor (mouse.file=... )
2- Usar un proceso que siga al mouse (dentro del bucle x=mouse.x; y=mouse.y) y le das el graph que quieras al proceso.

Mirate en el wiki todo lo relacionado con mouse.

Saludos

Title: Re: Caracoladas
Post by: Futu-block on March 14, 2010, 08:08:17 PM
buena idea, con eso tengo bastante por ahora...

aunque el tema del mode_2xscale no me muestra nada en la pantalla, igual me falta alguna libreria o algo
gracias
Title: Re: Caracoladas
Post by: blostec on March 14, 2010, 09:00:40 PM
Con la mod_video y la libvideo debería funcionar sin problemas.
Title: Re: Caracoladas
Post by: Drumpi on March 15, 2010, 02:01:46 AM
El Echo lo trae al principio del proceso MAIN, en el único prg que hay.
Con eso y lo que te paso a continuación tienes para entretenerte un rato (usa la función de buscar del notepad).
Title: Re: Caracoladas
Post by: Futu-block on March 15, 2010, 07:03:32 PM
bueno y lo de MAIN que es exactamente, que me rayo mas que una temblaera...

¿el nombre del programa? creo que es como poner program videojuego ¿no?


vale, otra:
estoy poniendo un selector giratorio (un grafico de la señal de tafico) para seleccionar el menú y quiero (mientra estoy probando mas alternativas...) que cuando esté girando me anule el boton de izda o dcha, en este caso vendria bien una funcion, como la declaro como un proceso cualquiera o poniendole delante 'funtion tal();' con punto y coma, parentesis....

miraré en el wiki en de mientras...
Title: Re: Caracoladas
Post by: FreeYourMind on March 15, 2010, 08:15:52 PM
Quote from: Futublog on March 15, 2010, 07:03:32 PM
bueno y lo de MAIN que es exactamente, que me rayo mas que una temblaera...

¿el nombre del programa? creo que es como poner program videojuego ¿no?


vale, otra:
estoy poniendo un selector giratorio (un grafico de la señal de tafico) para seleccionar el menú y quiero (mientra estoy probando mas alternativas...) que cuando esté girando me anule el boton de izda o dcha, en este caso vendria bien una funcion, como la declaro como un proceso cualquiera o poniendole delante 'funtion tal();' con punto y coma, parentesis....

miraré en el wiki en de mientras...


Ya has ripeado el Magnet Man ?  ;D ;D
Title: Re: Caracoladas
Post by: Windgate on March 15, 2010, 10:33:05 PM
El main es el programa principal, el primer BEGIN-END que se encarga de invocar al resto de procesos. En C se llama main esa parte del programa.
Title: Re: Caracoladas
Post by: Futu-block on March 17, 2010, 07:48:26 PM
Quote from: FreeYourMind on March 15, 2010, 08:15:52 PM
Quote from: Futublog on March 15, 2010, 07:03:32 PM
bueno y lo de MAIN que es exactamente, que me rayo mas que una temblaera...

¿el nombre del programa? creo que es como poner program videojuego ¿no?


vale, otra:
estoy poniendo un selector giratorio (un grafico de la señal de tafico) para seleccionar el menú y quiero (mientra estoy probando mas alternativas...) que cuando esté girando me anule el boton de izda o dcha, en este caso vendria bien una funcion, como la declaro como un proceso cualquiera o poniendole delante 'funtion tal();' con punto y coma, parentesis....

miraré en el wiki en de mientras...


Ya has ripeado el Magnet Man ?  ;D ;D


¬¬!
Title: Re: Caracoladas
Post by: Futu-block on March 22, 2010, 04:15:26 PM
¡HASTA LOS COJONES! del mode_2xscale...


no se que haceis o que libreria me falta que no me vá en lo que hago, y sin embargo en otros juegos va que no veas...


lo siento por el lenguaje, pero es que estoy harto...
(si, ya he mirado en el manual de osk)
Title: Re: Caracoladas
Post by: FreeYourMind on March 22, 2010, 04:19:24 PM
Siempre puedes desahogarte y relajarte dedicandole algun tiempo de relax haciendo otras cosas, como por ejemplo ripeando el Magnet Man  ;D
Title: Re: Caracoladas
Post by: Futu-block on March 22, 2010, 04:21:02 PM
en fin, me resignaré el riped magnet ese como se llame... T_T
Title: Re: Caracoladas
Post by: SplinterGU on March 22, 2010, 04:24:02 PM
si usas scale_resolution no va...

lo seteas antes del set_mode?
Title: Re: Caracoladas
Post by: Futu-block on March 22, 2010, 06:04:10 PM
eso tiene que ser que tengo una libreria antigua o me falta alguna otra cosa, yo creo que lo que tengo es lo correcto, aunque me dá a mí que falta tamien un mode_window o algo asi...

[code language="bennu"]PROGRAM videojuego;
INCLUDE "DLL/import.prg";                 //Incluye las DLL necesarias para que todo funcione

BEGIN
   set_mode(190,102,16,MODE_2xscale);
   load_fpg("carpett/graficc.fpg");
   
   proceso1();
END                               
[/code]
Title: Re: Caracoladas
Post by: SplinterGU on March 22, 2010, 06:51:01 PM
proba poner antes del set_mode

scale_mode=MODE_2XSCALE;
Title: Re: Caracoladas
Post by: Futu-block on March 22, 2010, 06:58:13 PM
pues no vá...

y eso que el juego es así de simple solo con un proceso que en el loop pone x++;

no sé por que no me vá

:'( :'( :'( :'( :'( :'(
Title: Re: Caracoladas
Post by: SplinterGU on March 22, 2010, 07:12:52 PM
pone el codigo completo a ver que pasa...
Title: Re: Caracoladas
Post by: Futu-block on March 25, 2010, 06:48:32 PM
[code language="bennu"]PROGRAM videojuego;
INCLUDE "DLL/import.prg";                 //Incluye las DLL necesarias para que todo funcione

BEGIN
   set_mode(190,102,16,MODE_2xscale);
   load_fpg("carpett/graficc.fpg");
   
   proceso1();
END

process proceso1()
begin
   x= 10;
   y= 10;
   graph 1;
   loop
         x++;
         frame;
   end
end          
[/code]

No tiene mas misterio, algo hay que me falla tanto en .bat como dandole a F6
Title: Re: Caracoladas
Post by: SplinterGU on March 25, 2010, 10:23:37 PM
jua!

man, no es problema del MODE_2xscale... es problema de que tu codigo no esta compilando...

"graph 1;" no existe... deberias poner "graph=1;"

hay que mirar la salida de compilacion...
Title: Re: Caracoladas
Post by: Futu-block on March 27, 2010, 08:37:56 AM
no, lo de graph 1; no es, despues de corregirlo sigue dando el mismo problema. Sin embargo cojo el apocalypto y le copio el mode2xscale y funciona perfectamente...

creo que lo que me falta es el main...

no se
Title: Re: Caracoladas
Post by: DCelso on March 27, 2010, 01:21:13 PM
Prueba esto

PROGRAM videojuego;
INCLUDE "DLL/import.prg";           //Incluye las DLL necesarias para que todo funcione
GLOBAL
   mi_fpg;
END
BEGIN
set_mode(190,102,16,MODE_2xscale);
mi_fpg=load_fpg("carpett/graficc.fpg");

proceso1();
END

process proceso1()
begin
  x= 10;
  y= 10;
  file = mi_fpg;
  graph=1;
  loop
        x++;
        frame;
  end
end
Title: Re: Caracoladas
Post by: SplinterGU on March 27, 2010, 05:31:25 PM
a mi me funciona perfectamente poniendo graph = 1 o quitando esa linea...

prueba poniendo y quitando el mode_2xscale, vas a ver que cambia y si funciona.
Title: Re: Caracoladas
Post by: DCelso on March 28, 2010, 12:12:08 AM
pero splinterGU ¿como te va si el graph 1 no está en el file 0? O te refieres a que te compila nada más.
Yo supuse que le faltaba asignar a file el valor devuelto por fpg_load.
Title: Re: Caracoladas
Post by: SplinterGU on March 28, 2010, 12:48:14 AM
compila y ejecuta, no importa que no este el grafico... eso no impide que no se ejecute el proceso y setee el modo de video escalado...


PROGRAM videojuego;

import "mod_video";
import "mod_screen";
import "mod_map";

BEGIN
set_mode(190,102,16,MODE_2xscale);
//load_fpg("carpett/graficc.fpg");

proceso1();
END

process proceso1()
begin
  x= 10;
  y= 10;
  graph=1;
  loop
        x++;
        frame;
  end
end


funciona perfectamente...


PROGRAM videojuego;

import "mod_video";
import "mod_screen";
import "mod_map";

BEGIN
set_mode(190,102,16/*,MODE_2xscale*/);
//load_fpg("carpett/graficc.fpg");

proceso1();
END

process proceso1()
begin
  x= 10;
  y= 10;
  graph=1;
  loop
        x++;
        frame;
  end
end


esta tambien funciona perfectamente

con esto quiero decir que el mode_2xscale si funciona... no entiendo como no le puede funcionar... por otro lado, lo que decis el fpg es correcto, tiene que setear file con el identificador del fpg cargado... pero eso no tiene nada que ver con el modo_2xscale... el mode_2xscale funciona...
Title: Re: Caracoladas
Post by: Futu-block on March 28, 2010, 11:57:16 AM
pruebo los codigos que has puesto y te comento, pero antes te digo que en windows xp de un ultraportatil que me acabo de comprar, no rula el bennu, no se si me falta algo pero no me vá en el notepad++

puede que sea por el xp home edition, puede que sea porque me faltase un diretx o algo asi...
Title: Re: Caracoladas
Post by: SplinterGU on March 28, 2010, 01:21:02 PM
no creo... podrias ser mas explicito cuando decis "no rula"? podrias poner una captura? gracias
Title: Re: Caracoladas
Post by: Futu-block on March 28, 2010, 02:14:03 PM
en cualquier videjuego (mode_window por supuesto...) a la hora de cargar el juego no pasa de la pantalla negra del comienzo, osea que no carga ni el graph...

¿tiene quer ver algo que es un xp home edition???
Title: Re: Caracoladas
Post by: SplinterGU on March 28, 2010, 02:43:45 PM
Ah, eso es otra cosa... "no rula" es decir "no arranca, no hace nada"... poner la pantalla en negro es hacer algo, esta seteando el modo de video al menos...

no, claro que no tiene que ver con xp...

seguro tiene que ver con lo que puso DCelso arriba... o que no tengas el archivo o que tengas un error en el nombre de lo que intentas cargar...
Title: Re: Caracoladas
Post by: Futu-block on March 28, 2010, 04:40:16 PM
quietorl, al bajarme el videojuego del tema no5, furula a la perfecion (funciona todo correcto ^^U)

eso debe ser de algunos archivos corruptos o algo de eso...

te voy a ajogar de karma por la ayuda desinteresada, splinter
Title: Re: Caracoladas
Post by: Futu-block on March 28, 2010, 10:02:19 PM
por otro lado, y aunque parezca absurdo, al crear un fpg nuevo y ponerlo en el .prg ya no funciona...
es gracioso
Title: Re: Caracoladas
Post by: FreeYourMind on March 28, 2010, 10:07:37 PM
Hombre no estarás creando fpg's de 32 bits ? Tienes que poner el modo 32 sino te vas a quedar a oscuras tal como relatas  ;D
Title: Re: Caracoladas
Post by: SplinterGU on March 29, 2010, 05:46:32 AM
jeje, claro que es gracioso... pon un codigo de ejemplo...
Title: Re: Caracoladas
Post by: Futu-block on March 29, 2010, 07:23:01 PM
vamos a ver, segun mas pruebas si creo un fpg con tres graficos na mas no me lo coje, guardo el sonic.fpg con otro nombre tampoco me lo coge, sin embargo si lo guardo con el otro nombre con el .fpg si me lo coge, pero si guardo el primer fpg con el .fpg no me cuadra de nuevo... esto es desesperante y,o paradogico, je je je

voy a probar quitando todos los graficos al sonic.fpg y dejandole tres solo como el primero...

de todas formas usaré el archivo de sonic.fpg con todas sus imagenes
Title: Re: Caracoladas
Post by: SplinterGU on March 29, 2010, 08:03:06 PM
por favor, pone un ejemplo completo, codigo + graficos...
Title: Re: Caracoladas
Post by: Futu-block on April 11, 2010, 10:25:05 PM
no hace falta ya, usaré un fpg existente y a correr...

cambiando de tema, me interesa crear un proceso a traves de un for pero me deja inmovil el otro processo

exactamente donde vá el for, dentro del loop fuera??

ejemplillo:

[code language="bennu"]

//EJEMPLO 1 ¿correcto?
process prota()
begin
x=100;
y=100;
graph=1;
loop
 if(x>=320) x++; end
 if(x<=1) x--; end
 for (tal=1;tal=5;tal++)
  enemigo();
  frame(100);
 end
  frame;
end
end

//EJEMPLO 2 ¿o este es el correcto?

process prota()
begin
x=100;
y=100;
graph=1;
loop
 if(x>=320) x++; end
 if(x<=1) x--; end
  frame;
end
for (tal=1;tal=5;tal++)
  enemigo();
  frame(100);
 end
end



[/code]
Title: Re: Caracoladas
Post by: FreeYourMind on April 11, 2010, 10:31:12 PM
Hasta un caracol te va ultrapasar ese for  ;D

Cambialos  por este:

for (tal=1; tal<=5; tal++)
Title: Re: Caracoladas
Post by: SplinterGU on April 12, 2010, 01:55:25 AM
"tal=5" no es una comparacion, es una asignacion...

"tal==5" es la comparacion
Title: Re: Caracoladas
Post by: Futu-block on April 12, 2010, 09:07:56 PM
Joño que fallo mas tonto, por eso se pillaba...

je jej e actualizo y cuento

vá como la seda, aunque eso no es lo que quiero  ;D ;D ;D
me interesa mas que en un movimiento de un proceso cree otro en la misma posicion (por lo menos x)
del primer proceso creo que es algo de signal ¿no?

gracias coleguis
Title: Re: Caracoladas
Post by: gecko on April 13, 2010, 12:07:32 AM
si un proceso crea a otro, en el segundo creado podes usar father.x para que "imite" al proceso que lo creo.

Es mas simple que signals... ademas creo que las signasl para pasar datos no sirven..
Title: Re: Caracoladas
Post by: Futu-block on April 13, 2010, 06:40:18 PM
seguiré intentando, pero lo que pasa que al ser otro proceso en un import a parte igual no sirve, por lo menos a mí no me sirve, provaré en el mismo .prg

acias

edito: lo de pather.x funciona a la perfescion, creia que habia que solicitar un indicador de posicion...
Title: Re: Caracoladas
Post by: Futu-block on April 16, 2010, 08:36:35 PM
yo lo que quiero ahora es que cualquier grafico apunte a cualquier punto, como por ejemplo al cursor del raton, como en el juego de la lata de sardinas que pedia en el otro hilo (http://"http://forum.bennugd.org/index.php?topic=681.0"), que no sé donde está la clave...



Title: Re: Caracoladas
Post by: Futu-block on April 18, 2010, 09:33:43 AM
¿hay una forma de simplificar esto con un switch o algo de eso?

[code language="bennu"]
if(tal == 1 and cual==1) pasa algo; end
if(tal == 1 and cual==2) pasa algo; end
if(tal == 2 and cual==1) pasa algo; end
...
[/code]
Title: Re: Caracoladas
Post by: Drumpi on April 18, 2010, 03:57:07 PM
Quote from: Futublog on April 16, 2010, 08:36:35 PM
yo lo que quiero ahora es que cualquier grafico apunte a cualquier punto, como por ejemplo al cursor del raton, como en el juego de la lata de sardinas que pedia en el otro hilo (http://"http://forum.bennugd.org/index.php?topic=681.0"), que no sé donde está la clave...

Mira a ver si te sirve GET_ANGLE o FGET_ANGLE, sólo debes obtener las coordenadas del (proceso) destino (variables locales predefinidas powa) y en el segundo caso, las del (proceso) origen.

Quote from: Futublog on April 18, 2010, 09:33:43 AM
¿hay una forma de simplificar esto con un switch o algo de eso?

[code language="bennu"]
if(tal == 1 and cual==1) pasa algo; end
if(tal == 1 and cual==2) pasa algo; end
if(tal == 2 and cual==1) pasa algo; end
...
[/code]

Tal cual lo has puesto, no, no hay ninguna si los "pasa algo" son todos distintos. Si son iguales bastaría con:


if ( (tal==1 or tal==2) and (cual==1 or cual==2) ) pasa algo; end
Title: Re: Caracoladas
Post by: Futu-block on April 18, 2010, 06:31:11 PM
vale, es un trabajo duro, ya que es para una cuadricula y asignarle cada uno un valor; de toas formas tengo que usar un array o vector para que cada cuadrito signifique algo...
ya lo vereis

otra forma es asignarle a cada cuadrito un numero, siempre que cada cuadrito sea independiente...

a ver si me comprendes

otra cosa:
cuando hago un rand para situar en una casilla un proceso y siempre me aparece en el mismo sitio, el rand es [code language="bennu"]if (key(_space)) horizontal = rand(1,8); vertical = rand(1,5); end[/code]
y los numeros que me aparece siempre es horizontal 2 y vertical 3...

que curioso...
Title: Re: Caracoladas
Post by: Drumpi on April 19, 2010, 12:38:57 PM
Cuando eso me pasaba a mi se debía a:
-Había puesto unos valores fijos para debug y después no los quité.
-No entraba nunca en el if porque no se cumplía la condición (aquí los SAY son de mucha ayuda).
-Tenía esa mala suerte (muy raro) (aqui puedes cambiar la semilla y arreglarlo).
Title: Re: Caracoladas
Post by: Futu-block on April 24, 2010, 10:17:52 AM
1.- ¿como se cambia la semilla?
2.- ¿como hago que un pequeño grafico aparezca en una parte de la pantalla? iran apareciendo mas como el en determinadas partes, pero que careceran de valor, osea que solo representan una casilla ocupada.
la verdad que no lo he intentado con put_screen porque creo que es para la pantalla de fondo ¿no?
Title: Re: Caracoladas
Post by: Drumpi on April 24, 2010, 12:20:29 PM
1.- Mira la función RAND_SEED.
2.- Puedes usar un proceso congelado, o consultar las funciones PUT, MAP_PUT, MAP_XPUT, MAP_XPUTNP, etc, hay una completa familia para eso.
Title: Re: Caracoladas
Post by: DCelso on April 24, 2010, 01:19:44 PM
yo usaría procesos, aunque el map sea de un solo pixel, ya se habló de que muchos procesos no bajan el rendimiento final, además dá la posibilidad de que en un futuro puedas usar otra cosa que no sea um pixel e incluso usar colisiones :D.
Title: Re: Caracoladas
Post by: Futu-block on April 24, 2010, 07:09:42 PM
el problema de usar procesos es que la rejilla que uso es de 8 x 5, cuarenta procesos + los del juego, unos diez o doce, igual sobrecarga el problema...
a menos que use el mismo proceso repetido 40 veces pero que solo muestre un graph distinto, solamente, igual no consume tanto ¿no?

bueno de todas formas voy a cambiar la rejilla a una mas pequeña + ''arrayzar'' la rejilla...
Title: Re: Caracoladas
Post by: DCelso on April 24, 2010, 07:31:21 PM
pues si, lo del proceso con distingos grapfs pinta bien pero si es un pixel de un color pues pásale como parámetro el color al proceso y luego creas un map de 1x1 y le haces un clear_map con ese color y ya tienes tu proceso de un color personalizado, por ejemplo.
Title: Re: Caracoladas
Post by: Futu-block on April 24, 2010, 07:53:24 PM
ahora necesito lo que yo quiero lamarle ''motor de despazamiento'' si lo puedo llamar así...

voy a mover a un personaje en la rejilla,  y me hace falta un detector de colisiones con los cuadros ocupados...
para ello podria usar una funcion para aprender a usarlas, algo que me devuelva un valor si el siguiente cuadro está ocupado o nó independientemente de la direccion que lleve

parece un poco lioso e igual no hace falta una fucion,  o sí... a investigar!!!
Title: Re: Caracoladas
Post by: Drumpi on April 25, 2010, 01:27:19 AM
¿40 procesos te parecen muchos? Haz números: 320x240, usando tiles de 16x16 ¿cuantos procesos salen? Eso la GP2X más o menos va, pero en la WIZ sobra ;)
Title: Re: Caracoladas
Post by: panreyes on April 25, 2010, 02:22:11 AM
Emmm.. Y en la GP32 va también. No recuerdo fps, pero eran bien altos! :D
Title: Re: Caracoladas
Post by: Futu-block on April 25, 2010, 08:14:53 AM
ok, aunque seguro que reduciré el numero de cuadriculas, limitaré mi juego a cuarente procesos que pa la wiz no consumen ná de ná...

el tema de los arrays, para darle 0 en todos sus valores, ¿se declara? o ya bennu lo hace por defecto...  ?_?
Title: Re: Caracoladas
Post by: Drumpi on April 25, 2010, 11:49:07 AM
Los arrays normales sí los pone a cero, pero yo no me acostumbraría a ello, que luego vienen los "errores inexplicables".

Pixel: ¿hay bennu para GP32? XD
Title: Re: Caracoladas
Post by: panreyes on April 25, 2010, 02:37:46 PM
Quote from: Drumpi on April 25, 2010, 11:49:07 AM
Pixel: ¿hay bennu para GP32? XD
Bué, hay algo parecido... xD
Title: Re: Caracoladas
Post by: Drumpi on April 25, 2010, 07:19:19 PM
Si ese "algo parecido" es lo que pienso, olvídalo, ya la GP2X no puede con FL, y ese tiene 240 procesos tiles por ahi si usaba el motor 2 de tiles (menos de la mitad con el tercero, pero no iba) ;D
Title: Re: Caracoladas
Post by: Futu-block on April 25, 2010, 07:39:00 PM
pues otra cosa que me pasa es que al ponerle en un proceso un if, me comprueba todas las casillas de una vez, ahí es donde creo que deberia poner una funcion, pero no sé ni declararla ni comprobarla ni nada, asi que por ''sublenguaje'' pondré mi proposito:
[code language="bennu"]
process tal y tal...
...
...

if (click de raton en tal posicion)
    pregunta a la funcion el numero designado a la casilla correspondiente
    devuelve 0 = vacia, 1 = objetivo, 2 = casilla usada;
end

...
...

[/code]
¿se puede hacer una cosa de estas?

pd: en el manual de osk no encuentro ná de ná
Title: Re: Caracoladas
Post by: DCelso on April 25, 2010, 08:54:22 PM
con mouse.x ,mouse.y y mouse.left puedes conseguir eso, si necesitas saber en qué regilla has hecho click, solo tienes que dividir mouse.x por el ancho de la regilla y mouse.y por el alto de la regilla.
http://wiki.bennugd.org/index.php?title=Mouse
Title: Re: Caracoladas
Post by: Futu-block on April 25, 2010, 10:26:12 PM
no, no te rayes que pa eso estoy yo; segun la posicion del cursor del raton me dá en una variable horizontal y otra vertical, un par de numeros; sería como en los barquitos de undir la flota...
que a su vez asigna un valor determinado de un array (¿demasiado complicado?)

al clickar sobre los valores correspondientes he de comprobar solamente el dato del array para mostrar un graph u otro...

si lo hago con if(lo que sea) me comprueba uno por uno toooooodos los cuadros, yo quiero saber si de alguna manera puedo usar una funcion...
Title: Re: Caracoladas
Post by: Futu-block on May 22, 2010, 09:08:51 AM
necesito una lista de instrucciones que se ejecute mas lento que los taitantos frames por segundo que hace el programa

mexplico:

quiero que al activar algo (cualquier variable a true) pase:

hacer 1 cosa;
hacer otra;
contador a cero;
variable tal a tanto;
etc;

pero entre una cosa y otra tarde un tiempo, no me lo haga en el acto, como me lo hace...

¿hay que poner frame(); detras de cada cosa para que actue de relantizador?
Title: Re: Caracoladas
Post by: Drumpi on May 22, 2010, 03:51:59 PM
Hombre, para hacer pausas tienes la instrucción frame, al que le puedes añadir un porcentaje de "frames" que quiere que se ejecute (con 50 seguirá hasta sumar un 100%, con 200% se ejecutará cada dos frames, etc).
Pero mientras el proceso no hará nada.
Actuaría como lo haría "delay" en C, pero el tiempo depende del número de frames que quiere que ejecute y de los fps.
Title: Re: Caracoladas
Post by: Futu-block on May 22, 2010, 05:28:50 PM
si, vale, he estado probando y ''va benne'' es justo lo que queria porque lo de fps no lo utilizo; todavia ni sé para que es, será para juegos grandes y eso...
Title: Re: Caracoladas
Post by: Drumpi on May 22, 2010, 05:52:47 PM
No, fps significa "frames por segundo" e indica cuantas imágenes se ven por cada segundo. En términos de programación indica cuantas veces van a llegar los procesos y las funciones a la instrucción frame y mostrar todo lo que han hecho en un segundo. La velocidad, dicho a groso modo.
Y se usa una función tan simple como set_fps.

Y esto es de programación básica. En serio, futublog, esto está en los primeros manuales de bennu, deberías leértelos si no lo has hecho.
Title: Re: Caracoladas
Post by: BoMbErLiNk on May 22, 2010, 06:07:25 PM
Dicho de paso, Bennu por defecto creo que arranca a 24fps y el estandar en la industria son (o eran) 60 fps.

Es curioso que se vieran más juegos a 60fps en las 8bits que en las consolas modernas  ;D
Title: Re: Caracoladas
Post by: Drumpi on May 22, 2010, 06:33:19 PM
Curioso no, normal: ten en cuenta que el estandar de la TV es de 50Hz en territorios PAL y 60Hz en SECAM y NTSC. A eso súmale que los programadores tenían pocos recursos que controlar y podían exprimirlos, y que la programación 2D no es muy compleja (además, lei que por ejemplo la NES tiene un HW para realizar scrolls, por eso se ven tan suaves).
Hoy día, tienen que sacar juegos en complejas 3D en 1/3 de tiempo que antes, programando sobre una capa sobre una capa sobre otra capa y otra capa más de soft (librerías propias sobre lenguaje Nintendo/Sony/microsoft, sobre estandar de normalización para gráficos, sobre librerías gráficas, sobre C, sobre SO, sobre asm...), con 3 CPUs, 5 GPUs, controladoras varias...

Bueno, vale: los programadores de hoy día son unos chapuzas comparados con los de antaño ;D
Title: Re: Caracoladas
Post by: BoMbErLiNk on May 22, 2010, 07:39:04 PM
Solo estaba ironizando  :D, esta claro que hoy en dia es mucho más barato no optimizar y tirar de 30 fps, o conseguir resultados graficos más potentes a esa velocidad.

Afortunadamente los 50hz ya son cosa del pasado, excepto en la Wii, no entiendo muy bien porque lo mencionas, solo a partir de Dreamcast se puso la selección de 50hz/60hz, en los 16bits aumentaban la dificultad del juego en la conversión PAL para suplir el descenso de frames (menos vidas), en los 32bits mantenian la velocidad a costa de perdida de fluidez pero siempre hubo adaptación a 50hz.

Estoy contigo en que el proceso actual parece mucho menos optimo y más laborioso, pero que yo sepa las consolas no han dificultado la programación sino todo lo contrario, con lenguajes estandar, motores graficos / fisicos listos para funcionar, hardware existente de pc..
Title: Re: Caracoladas
Post by: Futu-block on May 22, 2010, 08:14:43 PM
drumpi, si me he leido los tutos, pero no le veo utilidad actualmente, quizas para un tiempo de respuesta a la hora de pulsar un boton o cliclar en alguna parte de la pantalla...
Title: Re: Caracoladas
Post by: Drumpi on May 23, 2010, 12:16:29 AM
SI, Bomber, tienes razón, ha sido una ida de olla.
Es que me estoy estresando mucho últimamente con la placa y ya no se lo que digo. Supongo que me vino a la cabeza cierto libro que tengo sobre la mesa sobre cómo compilar codecs para el DSP que decía cosas como: coge el fuente, comprueba que sigue el estandar del codec, luego lo pasas con el programa para que lo valide, luego lo vuelves a compilar con tal programa para estandarizarlo, luego lo testeas con tal otro para comprobar que tiene las funciones de llamadas correctas, y después le pasas otro compilador para empaquetarlo... Juer, con veinte capas por debajo no me extraña que fallen los programas, que se pierda rendimiento y que no se aproveche el HW.

Es que veo cómo sufre la N64 para mover PD, los magníficos juegos de luces del DK64 salidos de la nada, los enormes mundos del Zelda OoT/MM, y luego aprovechan los mandos de wii para... manejar miis -.-U
O peor aun: cuando vi el Uncharted y la gente flipaba con los gráficos... Creo haber visto juegos de Wii, y puede que de GC, con la misma carga poligonal usando 1/3 o 1/6 de la capacidad de proceso de ¿era 360 o PS3?
O incluso mucho peor aun: los enormes mapeados de juegos como Terranigma, Secret of Evermore o Chrono Trigger en tan solo 4MB y con 600MB no llegan ni a la décima parte, o con 4GB por mucho 3D que usen.

Necesito salir urgentemente ^^U
Title: Re: Caracoladas
Post by: Futu-block on May 24, 2010, 08:19:59 PM
bueno chavales, quiero hacer un protector de pantalla, quiero reducir el fade a (33,33,33,vel.) cuando pase un minuto (por ejemplo, sino un contador ¬¬) sin tocar una tecla o mover el raton (mejor al hacer click, ¿no?) y que se recupere al hacer click...

mientras escribo me viene a la cabeza lo de 
!key(_cualsea)
Title: Re: Caracoladas
Post by: FreeYourMind on May 24, 2010, 09:34:51 PM
Pero que vicio con los fps... Si el ojo humano sólo puede ver 25  ;D
Title: Re: Caracoladas
Post by: Drumpi on May 25, 2010, 12:09:51 AM
Futublog: pues bien fácil es, puedes usar un contador, puedes usar un timer... pero para lo de detectar la pulsación quizás te convenga más scan_code y mouse.left/right/middle...

Free: el ojo detecta movimiento con 25, creo que era así. Pero puedo decir que al menos yo puedo distinguir si un monitor muestra 35 o 45 imágenes (¿tendrá algo que ver con trabajar con corrientes eléctricas a 50Hz? ;D). Entre 50 y 60 sí que sería hilar fino, ni te cuento con los 600Hz de las nuevas teles 3D :D :D :D
Title: Re: Caracoladas
Post by: Futu-block on May 25, 2010, 09:02:02 PM
las nuevas teles 3d son una mierda...

end of offtopic

je je

jorobi, tengo ahora un polema con font editor, a la hora de ejecutar el juego con la fuente en cuestion no me reconoce los numeros negativos, osea que no me pone el signo menos...

sera de la fuente??¿?¿?
Title: Re: Caracoladas
Post by: Drumpi on May 25, 2010, 11:45:22 PM
¿Será que no has añadido los caracteres especiales al crear la fuente?
Si no, en teoría, con add_glyph o algo así puedes añadir nuevos caracteres a las fuentes desde mapas... o al menos, eso parece (aun tengo que probarlo).

Aunque sí, hay fuentes que no traen algunos caracteres "básicos".
Title: Re: Caracoladas
Post by: Futu-block on May 27, 2010, 10:12:35 PM
se ha solucionado de la forma mas tonta...

ahora a supervisar lo de scan_code a ver como rula