Bennu Game Development

Foros en Español => Mesa de Ayuda => Topic started by: Futu-block on January 28, 2012, 10:46:14 AM

Title: Dudas rapidas, o de rapidas respuestas
Post by: Futu-block on January 28, 2012, 10:46:14 AM
Abro este hilos porque tengo pequeñas dudas...


1· Uso varios fpgs, ¿se tiene que cargar en cada proceso su propio fpg para que use sus graficos deseados?


2· Igual que está el 2xscale para aumentar, ¿hay algo para reducir??



Title: Re: Dudas rapidas, o de rapidas respuestas
Post by: FreeYourMind on January 28, 2012, 12:38:39 PM
1 - no, la carga de fpg's o de lo que sea no tiene relacion con los procesos, si un fpg ya esta en memoria, lo puedes usar en el proceso que quieras, tienes la variable file que indica de que fpg usar el grafico.


process intro()
begin

file=fpg_intro;
graph = 1;

...


2 - el scale_resolution sirve para aumentar y reducir sin usar filtros (el 2xscale es un filtro)
Title: Re: Dudas rapidas, o de rapidas respuestas
Post by: Futu-block on January 28, 2012, 06:25:35 PM
3· ¿como se escala sin el fitro? entonces
Title: Re: Dudas rapidas, o de rapidas respuestas
Post by: Rein (K´)ah Al-Ghul on January 28, 2012, 11:19:04 PM
Quote from: Futublock on January 28, 2012, 06:25:35 PM
3· ¿como se escala sin el fitro? entonces

Quote from: FreeYourMind on January 28, 2012, 12:38:39 PM
2 3 - el scale_resolution sirve para aumentar y reducir sin usar filtros (el 2xscale es un filtro)

2 tambien puedes pasar el un archivo cargado mediante "FILE", al llamar a un proceso funcion...


Process Nombre(FILE)
....


Begin

FPGCargado = fpg_load("")M

Nombre( FPGCargado );

Title: Re:Dudas rapidas, o de rapidas respuestas
Post by: Futu-block on February 08, 2012, 11:07:24 PM
otra, ¿un proceso puede crear otro proceso igual??
·un poquito de codigo porque no sé explicarlo:

process cualquiera(tipo)
begin
tal y tal...
    loop
        if (colision (type otro)
             cualquiera(b);
            break;
        end
        frame;
   end
end



¿se puede entonces el siguiente asignarle propiedades del padre? como por ejemplo coordenadas x,y
Title: Re:Dudas rapidas, o de rapidas respuestas
Post by: Arcontus on February 08, 2012, 11:44:47 PM
Si que se puede llamar desde un proceso a si mismo. Esto es lo que se conoce como llamada recursiva, pero si no lo haces bien la lias parda :)

Para que un proceso tenga los parametros de otro, lo que se hace es pasar punteros, nada más dificil que:

PROCESS proceso2(int *lax, int *lay)
BEGIN
...
x = *lax;
y = *lay;
...
END

PROCESS Proceso 1()
BEGIN
...
PROCESO2(&x, &y);
...
END


El unico peligro de esto, es que si el proceso 1 acaba antes que el 2, mal asunto, por que petara el programa.

Saludos!
Title: Re:Dudas rapidas, o de rapidas respuestas
Post by: Futu-block on February 09, 2012, 09:53:43 AM
otra:
·¿como tomo la coordenada del personaje y mando al enemigo en esa direccion?
Title: Re:Dudas rapidas, o de rapidas respuestas
Post by: gukan on February 09, 2012, 03:22:20 PM
¿Tu quieres que te escribamos el codigo entero o estas haciendo un test de conocientos de bennu y repartiras premios al final?

La wiki (http://wiki.bennugd.org/index.php?title=Bennu_Wiki (http://wiki.bennugd.org/index.php?title=Bennu_Wiki)) tiene muchas respuestas!
El get_angle (http://wiki.bennugd.org/index.php?title=Get_angle (http://wiki.bennugd.org/index.php?title=Get_angle)) te dara el angulo de un proceso a otro, el advance (http://wiki.bennugd.org/index.php?title=Advance (http://wiki.bennugd.org/index.php?title=Advance)) te hara avanzar un proceso en la dirección de un angulo.
Title: Re:Dudas rapidas, o de rapidas respuestas
Post by: Futu-block on February 09, 2012, 03:46:03 PM
Hombre, no quiero respuestas que me remitan a la wiki, no la entiendo de ninguna manera...

sin embargo si quiero respuestas como la que me has dado:
·Get angle + advance

sin embargo voy un poquito mas lejos; ¿como puedo saber la posicion de un personaje?? osea preguntarle la x,y


por cierto gukan, te has llevado el premio de la critica :lol:
Title: Re:Dudas rapidas, o de rapidas respuestas
Post by: KeoH on February 09, 2012, 09:17:31 PM
Quote from: Futublock on February 09, 2012, 03:46:03 PM
Hombre, no quiero respuestas que me remitan a la wiki, no la entiendo de ninguna manera...

sin embargo si quiero respuestas como la que me has dado:
·Get angle + advance

sin embargo voy un poquito mas lejos; ¿como puedo saber la posicion de un personaje?? osea preguntarle la x,y


por cierto gukan, te has llevado el premio de la critica :lol:




Puedes hacer que el proceso enemigo haga angle = get_angle(idProtagonista); que lo que hace es cambiar su angle, apuntando a idProtagonista (que sera el id del proceso prota).. despues que mida la distancia hasta idProtagonista con distancia = get_dist(idProtagonista);
con esto ya tienes a que distancia está el prota y en q direccion .. ahora solo te falta usar advance(distancia); para que el enemigo se ponga encima del protagonista. Otra cosa chula es poner por ejemplo advance(distancia/10); lo que hace que el enemigo solo avance una decima parte de la distancia entre los procesos en cada fotograma, siguiendo al protagonista. Todo este codigo debe ejecutarse desde el proceso enemigo, porque es el que sigue al prota.
Espero te sirva :)
Title: Re:Dudas rapidas, o de rapidas respuestas
Post by: Futu-block on February 09, 2012, 10:45:24 PM
vale, probablemente use eso, pero lo que me referia es todavia mas facil, ya que queria que se acercara diagonalmente:

En un momento concreto hace una ''foto'' de nuestro prota, guardando las coordenadas x,y en una variable...
y para el movimiento se usa sendos if que hacen que lo acerque a sitio indicado :D
la idea era que el movimiento del enemigo sea que se acercara al punto del protagonista si lleva tiempo sin moverse, provocando que no se quede quieto...


Otra mas dificil :D
·Quiero que se gire la imagen, que se balancee sobre el punto central, pero no quiero que afecte a las coordenadas relativas; osea que si avanzo a la derecha sumando en x, tenga el efecto tooodo el videojuego de balanceo, ¿eso hay un efecto que lo haga??
Title: Re:Dudas rapidas, o de rapidas respuestas
Post by: gukan on February 10, 2012, 09:49:00 AM
Quote from: Futublock on February 09, 2012, 03:46:03 PM
sin embargo voy un poquito mas lejos; ¿como puedo saber la posicion de un personaje?? osea preguntarle la x,y
Siempre puedes poner la x,y del proceso que quieres conocer como variables publicas de ese proceso (o crear 2 publicas como publicX y publicY e ir actualizandolas a cada frame) y desde el otro proceso preguntar [idDelProceso].publicX/Y (que los gurus de como se hace confirmen que se puede acceder de esa forma).
Si eso no es posible, con el get_angle y el get_dist + un poco de trigonometria, seguro que se pueden sacar los valores.

Quote from: Futublock on February 09, 2012, 03:46:03 PM
por cierto gukan, te has llevado el premio de la critica :lol:
Quiero agradecer a mi papa y a mi mama todo el esfurzo que hicieron para que llegara este momento, han sido años de duro trabajo y dedicación y aunque he tenido una dura competencia creo que se ha hecho justicia. Gracias a todos !!!

Quote
Otra mas dificil (http://foro.bennugd.org/Smileys/default/cheesy.gif)
·Quiero que se gire la imagen, que se balancee sobre el punto central, pero no quiero que afecte a las coordenadas relativas; osea que si avanzo a la derecha sumando en x, tenga el efecto tooodo el videojuego de balanceo, ¿eso hay un efecto que lo haga??
No creo que te entienda. ¿Quieres decir que si sumas a x en lugar de avanzar en esa dirección avance en la dirección en que esta girado el proceso?
Si es eso, en lugar de sumar a x usa el xadvance:
- A la derecha xadvance(0+angle,10).
- A la izquierda xadvance (180000+angle,10).
- Arriba xadvance(90000+angle,10).
- Abajo xadvance(-90000+angle,10).
(Que quede claro que es tentativo. diria que esos son los valores y que se ha de sumar el angle y no restarlo, pero seria cuestion de hacer pruebas)
Title: Re:Dudas rapidas, o de rapidas respuestas
Post by: Futu-block on February 10, 2012, 11:51:10 AM
malas noticias, no hay presupuesto para el envio de premios :D

un par de cositas, ya que con el public me peleé hace tiempo y al final es mas facil de lo que ''tememos'' ;)
·Las variables x,y de los procesos son publicas, asi que podemos consultarla siempre; lo que pretendia yo es poner un punto de referencia para donde acudir el enemigo en plan kamikaze
·En cuanto lo otro, es que no me he explicado bien, lo que quiero es que un juego (por ejemplo el arkanoid, para entenderlo) gire por la pantalla a nuestro gusto, pero siempre que sea un efecto, nada de girarlo nosotros, sino como movemos la paleta?¿

aunque estoy pensando...
-Si lo que manda en el giro es la posicion del raton = un valor entre 1 y 100 (por ejemplo), el movimiento de la paleta será relativo al angulo que en ese momento proponga el raton = 1,100; los objetos que caen deben tener una perpendicular relativa al angulo propuesto llamado a partir de ahora â...

si, esto vá saliendo ya, ahora a hacer practicas
Title: Re:Dudas rapidas, o de rapidas respuestas
Post by: KeoH on February 10, 2012, 12:20:07 PM
yo sigo sin entender lo que quieres hacer xDDD
Title: Re:Dudas rapidas, o de rapidas respuestas
Post by: Arcontus on February 10, 2012, 12:46:54 PM
Futublock, si lo que quieres es controlar a un proceso desde otros, lo que necesitas se llama punteros. Siento no poder ayudarte más, pero la gracia como ya te dije, son los punteros.

Si pones un código de ejemplo, te podremos ayudar más en detalle.

Saludos!
Title: Re:Dudas rapidas, o de rapidas respuestas
Post by: gukan on February 10, 2012, 12:56:48 PM
Quote from: KeoH on February 10, 2012, 12:20:07 PM
yo sigo sin entender lo que quieres hacer xDDD
:o   Mi no entender tampoco!
Title: Re:Dudas rapidas, o de rapidas respuestas
Post by: FreeYourMind on February 10, 2012, 01:11:32 PM
creo que quiere hacer un nuevo fondo que le falta con dos tias jugando al bowbling  ;D 
Title: Re:Dudas rapidas, o de rapidas respuestas
Post by: Futu-block on February 10, 2012, 05:36:55 PM
jodere, que torpes  ;D

esto es lo que busco: (http://forum.bennugd.org/index.php?action=dlattach;topic=2930.0;attach=2332)
ojo que está a pantalla completa
Title: Re:Dudas rapidas, o de rapidas respuestas
Post by: FreeYourMind on February 10, 2012, 07:13:34 PM
girar toda la acción ? No pides poco no xD
Title: Re:Dudas rapidas, o de rapidas respuestas
Post by: Futu-block on February 10, 2012, 09:11:28 PM
no pido, pregunto...

como habia una opcion que te giraba para el action pinball, igual se puede hacer asi, aunque creo que no es lo mismo :O
Title: Re:Dudas rapidas, o de rapidas respuestas
Post by: FreeYourMind on February 10, 2012, 10:48:13 PM
A ver por puntos:

1 - una cosa es setear la resolucion, y la inclinacion de pantalla.
Puedes rotar la imagen y ajustarla a la pantalla de mil maneras y resoluciones, pero siempre horizontal o vertical, no diagonal como en la imagen.

2 - Otra cosa es rotar una imagen en tiempo real, o lo mismo para capturar todo lo que se ve en pantalla y rotarlo.

Estos efectos se pueden hacer para transiciones por ejemplo, consumen muchos recursos, si esperas tener la pantalla de tu juego constantemente sufriendo rotaciones mientras juegas, pues olvidate, eso consumiria mucho.

Mirate por ejemplo el juego sitwell, momia es un crack haciendo transiciones, al iniciar fase captura la pantalla y la rota, es un efecto similar al que pones.


3 - Otra cosa es por ejemplo capturar toda la pantalla y proyectar la misma en otra region de pantalla, sufriendo rotacion como pones.

De todo esto te tienes que aclarar y decirnos exactamente que quieres hacer.

PS: el map_block_copy va ser tu amigo....
Title: Re:Dudas rapidas, o de rapidas respuestas
Post by: Futu-block on February 10, 2012, 11:35:04 PM
no queria hacer nada, era por saber si existia un efecto que hiciera eso
Title: Re:Dudas rapidas, o de rapidas respuestas
Post by: Rein (K´)ah Al-Ghul on February 11, 2012, 12:45:17 AM
tendria que hacerce a mano, usando trigonometril y angle xD
Title: Re:Dudas rapidas, o de rapidas respuestas
Post by: Arcontus on February 11, 2012, 01:54:08 PM
Como ya te han comentado, no existe tal funcion, esta es de esas cosas que te las tienes que hacer tu mismo y como dicen más arriba usando trigonometría puedes hacerlo. Tampoco creo yo que decaigan los FPS usando trigonometria, pero si lo que haces es crear una pantalla, hacer una snapshot y mostrar la snapshot rotada sobre el juego, de eso si olvidate.

Saludos!
Title: Re:Dudas rapidas, o de rapidas respuestas
Post by: Futu-block on February 11, 2012, 09:00:19 PM
bueno, lo unico que habria que hacer es un ''doble juego''; un juego (por ejemplo arkanoid) donde se lleve a rajatabla, y otro que te muestre ese juego rotado en el momento deseado, lo que se viene llamando un clon...

yo me entiendo y haré mis pruebas para hacerme feliz, je je ^^U
Title: Re:Dudas rapidas, o de rapidas respuestas
Post by: Futu-block on February 20, 2012, 10:49:58 PM
otra:
Pantalla completa manteniendo la proporcion, si es 4:3 que no lo panoramicanice, si existe esa palabra, je je je


Otra mas: que el raton no pierda el foco de la pantalla...
me autorrespondo con:

if (MOUSE_STATUS == 1) x = mouse.x; end

esta gente me mata  ???
Title: Re:Dudas rapidas, o de rapidas respuestas
Post by: Futu-block on March 18, 2012, 01:49:38 AM
Otras:

¿como escribir lo que tenga ya puesto en un txt??
¿se puede escribir el texto en vertical??
Title: Re:Dudas rapidas, o de rapidas respuestas
Post by: Rein (K´)ah Al-Ghul on March 18, 2012, 01:58:19 AM
1 una variable string que obtenga la linea de texto de un archivo (no tiene porque ser txt, pero si de texto)
y luego imprimes esa variable como cualquier texto

2 si te refieres a caracater por caracter, son tantos writes como lineas quieras, cada uno con un caracter
si te refiers al texto de abajo arriba, seria mejor volcarlo en un mapa y rotar el mapa...
Title: Re:Dudas rapidas, o de rapidas respuestas
Post by: Futu-block on March 18, 2012, 10:27:56 AM
bien, me refiero a lo segundo, lo volcaré en un mapa, ni idea pero miraré en la biblia ;)

por otro lado, estoy pensando que si tengo que editar un txt es mejor modificar un prg, asi que, si se pueden acudir a unos datos, por ejemplo punteros...


¿es correcto o no?
lo que quiero saber ahora es que quiero escribir algunos datos para que sean tomados en cuenta, ¿era puntero o estructura??
Title: Re:Dudas rapidas, o de rapidas respuestas
Post by: Futu-block on March 30, 2012, 09:12:41 PM
Otra, quiero poner una imagen png de 100x100 por ejemplo

¿se hace con put_screen?
¿es compatible con los graficos del fpg?
¿hay que ponerle una z tambien?
Title: Re:Dudas rapidas, o de rapidas respuestas
Post by: La momia que fuma on March 30, 2012, 11:04:33 PM
Lo de rotar toda la pantalla en realidad ahora si se puede hacer fácil: En una de las últimas versiones de Bennu se añadió la opcion a start_scroll de renderizar los contenidos de dicho scroll a un gráfico en lugar de directamente a la pantalla, con esto, usas ese gráfico como pantalla y le puedes aplicar angle o size para zooms o lo que quieras. Tiene la ventaja también de que si quieres que haya cosas que no se roten, marcadores y esas cosas, con no incluirlas en el scroll esto no les afecta.