Dudas rapidas, o de rapidas respuestas

Started by Futu-block, January 28, 2012, 10:46:14 AM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Futu-block

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??




FreeYourMind

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)

Futu-block

3· ¿como se escala sin el fitro? entonces

Rein (K´)ah Al-Ghul

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 );


Rein (K´)ah Al-Ghul
Infected with the Krieger strain of the Human-MetaHuman Vampiric Virus.

en vez de darme Karma positivo, denme (K´)arma negativ

Futu-block

#4
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

Arcontus

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!
5Leaps, el primer juego comercial desarrollado para BennuGD. http://www.5leaps.com

Futu-block

otra:
·¿como tomo la coordenada del personaje y mando al enemigo en esa direccion?

gukan

¿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) tiene muchas respuestas!
El 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) te hara avanzar un proceso en la dirección de un angulo.

Futu-block

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:

KeoH

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 :)

Futu-block

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??

gukan

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 :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??
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)

Futu-block

#12
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

KeoH

yo sigo sin entender lo que quieres hacer xDDD

Arcontus

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!
5Leaps, el primer juego comercial desarrollado para BennuGD. http://www.5leaps.com