Bennu Game Development

Foros en Español => Mesa de Ayuda => Topic started by: juguefre on June 11, 2017, 01:26:46 AM

Title: jerarquia
Post by: juguefre on June 11, 2017, 01:26:46 AM
Ok he creado esta jerarquía y no logro hacer que se comporte como la necesito.

En la primera imagen coloco las 2 flechas como deben quedar en la pantalla,

En la segunda imagen he rotado la flecha roja 90 grados y la verde no la sigue.

En la tercera imagen a la verde le he agregado

                x = father.x;
      y = father.y;
      angle=father.angle;

y la verde sigue a la roja en x & y  pero rota con relación a su propio pivote.

En la cuarta imagen he manipulado el pivote de la verde con

               center_set(0,graph,50,200);

asi el pivote de ambas esta en el mismo lugar y finalmente logro que la verde siga perfectamente a la roja (pero esto es mas un problema que una solución).

En la quinta imagen necesito rotar la verde en la dirección contraria (tal y como se ve en la imagen)estando aun en la punta de la flecha roja pero no puedo por que el pivote lo use para seguir a la flecha roja en la imagen cuatro..........

Necesito que la flecha verde este siempre en el lugar donde la coloque con respecto a la roja, en este caso la base de la flecha verde siempre debe estar en la punta de la flecha roja y la flecha verde debe poder rotar libremente.

Supongo que me falta una parte en la jerarquia  :-\ pero ya me quede bloqueado en este tema.


(https://image.ibb.co/mVxD8F/dem.jpg) (https://ibb.co/k55dav)

Gracias por su tiempo.
Title: Re:jerarquia
Post by: SplinterGU on June 11, 2017, 03:33:30 AM
se me ocurre que quizas es un tema de prioridades (priority)

sin ver codigo es dificil darte una respuesta correcta.
Title: Re:jerarquia
Post by: juguefre on June 11, 2017, 03:43:24 AM
Este es el codigo:

import "Mod_grproc";
import "Mod_proc";
import "Mod_text";
import "Mod_key";
import "Mod_mouse";
import "Mod_video";
import "Mod_map";
import "Mod_screen";
import "Mod_math";

Global
      int fichero;
      int imagen;
process Main()

Begin
      Set_Mode(610,480,16);
      set_fps(0,0);
      fichero = Load_fpg("carros.fpg");
      rojo(460,250,16);
      
      
      
End


process rojo(x,y,z,)
Begin
   verde(160,90,15);
   //AAA(160,139,16);
      File = fichero;
      Graph = 33;
      center_set(0,graph,50,100);
      Loop      
         IF (key(_left))
         x-=4;
         END
         IF (key(_right))
         x+=4;
         END      
         IF (key(_1))
         angle+=100;
         END
         IF (key(_2))
         angle-=100;
         END
      //write_int(0,50,50,0,&fps);
      Frame;
      End
End

process verde(x,y,z)

Begin
      File = fichero;
      Graph = 34;
      center_set(0,graph,50,100);
      Loop
      x = father.x;
      y = father.y-100;
      angle = father.angle;
      Frame;
      End
End
Title: Re:jerarquia
Post by: SplinterGU on June 11, 2017, 03:55:55 AM
puedes poner el codigo junto al fpg en un zip?
Title: Re:jerarquia
Post by: juguefre on June 11, 2017, 04:07:19 AM
En el zip estan el fpg, el prg y el dcb
Title: Re:jerarquia
Post by: SplinterGU on June 11, 2017, 04:11:55 AM
a mi me va de lujo, no se con que version estas probando.

el unico tema que cuando me voy a la derecha revienta... algun bug... (revienta al usar una resolucion no estandard)
Title: Re:jerarquia
Post by: SplinterGU on June 11, 2017, 04:16:26 AM
el set_center no es

        center_set(0,graph,50,100);

tiene que ser

        center_set(file,graph,50,100);


Title: Re:jerarquia
Post by: juguefre on June 11, 2017, 04:23:07 AM
whaaaaaaat.........



como asi? le funciona y la flecha verde mantiene su posicion en la punta de la flecha roja al rotar???????
Title: Re:jerarquia
Post by: juguefre on June 11, 2017, 04:25:56 AM
Estoy usando notepad++ v6.5.1 (unicode)
Title: Re:jerarquia
Post by: SplinterGU on June 11, 2017, 04:35:00 AM
version de bennugd.
Title: Re:jerarquia
Post by: SplinterGU on June 11, 2017, 04:37:22 AM
file = 0 se usa para graficos creados desde bennugd o cargados individualmente (por ejemplo, new_map, map_load, png_load, etc...), cuando haces un fpg_load, no puedes usar 0, tienes que usar el identificador devuelvo por la funcion fpg_load, (puede ser que devuelva 0, pero nadie te lo garantiza)
Title: Re:jerarquia
Post by: juguefre on June 11, 2017, 04:37:55 AM
Es bennupack 2.6

A mi me hace esto al rotar:

https://youtu.be/bW1v0W9xp1Q (https://youtu.be/bW1v0W9xp1Q)

De la unica forma que la flecha verde sigue estando en la punta de la roja es manipulando el pivote de la flecha verde.
Title: Re:jerarquia
Post by: SplinterGU on June 11, 2017, 04:46:10 AM
ahora entiendo que quieres... pense que querias que roten los 2, rotar, rotan...

no tiene nada que ver con las jerarquias... ya te paso como seria...
Title: Re:jerarquia
Post by: juguefre on June 11, 2017, 04:55:36 AM
Lo que trato de lograr es esto:

https://youtu.be/iW8IP7Dk9X8

una tarea simple en teoria........
Title: Re:jerarquia
Post by: SplinterGU on June 11, 2017, 04:57:46 AM

import "Mod_grproc";
import "Mod_proc";
import "Mod_text";
import "Mod_key";
import "Mod_mouse";
import "Mod_video";
import "Mod_map";
import "Mod_screen";
import "Mod_math";

Global
      int fichero;
      int imagen;
process Main()

Begin
      Set_Mode(640,480,16);
      set_fps(0,0);
      fichero = Load_fpg("carros.fpg");
      rojo(460,250,16);



End


process rojo(x,y,z,)
public
   cx,cy;
Begin
   priority = 20;
   verde(160,90,15);
   File = fichero;
   Graph = 33;
   center_set(file,graph,50,100);
   set_point(file,graph,1,50,0);
   Loop
      IF (key(_left))
         x-=4;
      END
      IF (key(_right))
         x+=4;
      END
      IF (key(_1))
         angle+=100;
      END
      IF (key(_2))
         angle-=100;
      END
      if (key(_ESC))
         let_me_alone();
         break;
      end
      get_real_point(1,&cx,&cy);
   //write_int(0,50,50,0,&fps);
      Frame;
   End
End

process verde(x,y,z)
private
   rojo padre;
Begin
   priority = 10;
   File = fichero;
   Graph = 34;
   center_set(file,graph,50,100);
   Loop
      padre = father;
      x = padre.cx;
      y = padre.cy;
//      angle = father.angle;
      Frame;
   End
End
Title: Re:jerarquia
Post by: SplinterGU on June 11, 2017, 04:58:48 AM
Quote from: juguefre on June 11, 2017, 04:55:36 AM
Lo que trato de lograr es esto:

https://youtu.be/iW8IP7Dk9X8

una tarea simple en teoria........

para la primera parte de ese video, a mi respuesta, descomenta esto

//      angle = father.angle;

y para la 2da parte, como lo puse
Title: Re:jerarquia
Post by: SplinterGU on June 11, 2017, 05:02:49 AM
podrias buscar mi codigo de una crapcompo, creo que el juego se llamaba resident evil, y son unos zombies echos a bloques y circulos que usan esto mismo para los brazos, piernas, cabeza, vamos, para todas las articulaciones... usan pivotes y cada miembro se mueve con respecto al joint del miembro padre.
Title: Re:jerarquia
Post by: juguefre on June 11, 2017, 05:05:41 AM
Quote from: SplinterGU on June 11, 2017, 05:02:49 AM
podrias buscar mi codigo de una crapcompo, creo que el juego se llamaba resident evil, y son unos zombies echos a bloques y circulos que usan esto mismo para los brazos, piernas, cabeza, vamos, para todas las articulaciones... usan pivotes y cada miembro se mueve con respecto al joint del miembro padre.

Creo que tengo ese juego y me parece que se llamaba Viohazard o eso recuerdo (con V) lo voy a buscar y a estudiar bien.

Mil gracias por la ayuda ya me estaba desesperando con esto.

Title: Re:jerarquia
Post by: SplinterGU on June 11, 2017, 05:21:33 AM
no, es este, lastima no esta completo, pero creo que si compilas el editor de animaciones deberia funcionar (que es lo que te podria interesar mas)

http://forum.bennugd.org/index.php?topic=437.msg7875#msg7875

EDIT: efectivamente, el editor funciona. Es un esqueleto humano donde podes mover todos sus huesos, y estan vinculados unos a otros, cuando moves algo, afecta al todo.
Title: Re:jerarquia
Post by: juguefre on June 11, 2017, 05:34:29 AM
Nuevamente mil gracias, voy a revisar ese juego tuyo completamente para entender bien este tema.

Title: Re:jerarquia
Post by: SplinterGU on June 11, 2017, 05:46:20 AM
de nada, un gusto.