Bennu Game Development

Foros en Español => Mesa de Ayuda => Topic started by: Erkosone on June 06, 2013, 06:39:16 PM

Title: Duda con el seteo de un bit en un int.
Post by: Erkosone on June 06, 2013, 06:39:16 PM
Buenas, tengo una duda, haber si alguien experimentado puede ayudarme, estoy intentando setear un bit de una variable INT a 0|1 pero no lo consigo con la formula tradicional de C, tengo unas funciones que lo hacen en C pero no me funcionan, supongo que en bennu hay que hacerlo de una manera similar pero no igual..


Alguien puede ponerme un ejemplo de como setear un bit a 0 o 1 de un INT?


Esto es para un nuevo tutorial de la PhysicsMotionAPI donde voy a explicar como se usan los layers en chipmunk y como hay que hacer para aprobecharlos, pero no puedo setear los bits de la variable 'LPHYSICS.LAYERS' correctamente.


Gracias de antemano.
Title: Re:Duda con el seteo de un bit en un int.
Post by: laghengar on June 06, 2013, 07:38:18 PM
http://wiki.bennugd.org/index.php?title=Bit_flags

He visto esto, no se si te ayudará, yo me he tirado 10 minutos leyéndolo y no me he enterado de nada. Suerte.
Title: Re:Duda con el seteo de un bit en un int.
Post by: Rein (K´)ah Al-Ghul on June 06, 2013, 09:27:01 PM
No deberias sumar el valor del bit (1,2,4,8,etc) ?
y para consultaro usar el and, or, xor binario...
Title: Re:Duda con el seteo de un bit en un int.
Post by: Erkosone on June 07, 2013, 04:58:17 AM
Quote from: laghengar on June 06, 2013, 07:38:18 PM
http://wiki.bennugd.org/index.php?title=Bit_flags (http://wiki.bennugd.org/index.php?title=Bit_flags)

He visto esto, no se si te ayudará, yo me he tirado 10 minutos leyéndolo y no me he enterado de nada. Suerte.


Gracias lagengar, lo había visto pero pensaba que no era lo que necesitaba, pero ahora al releerlo si que me he dado cuenta de que muestra los ejemplos de como acceder a los BITS con operadores binarios.


Gracias por abrirme los ojos jeje.. voy a grabar el vídeo de los layers y a colgar el nuevo tutorial de chipmunk en bennu, creo que esto le va a interesar a mas de uno.. muestra como atravesar plataformas durante un salto ;)


Gracias de nuevo, es justo lo que necesitaba para añadir esto al api de física:



//.............................................................
//......................LAYER SETTER...........................
//.............................................................
function Physics_entity_set_layer(int id_, int layer_, int status_);
begin
    if (status_)
      id_.lphysics.layers|= 1<<layer_;
   else
      id_.lphysics.layers&= ~(1<<layer_);
   end   
   return(0);
end
//.............................................................
//......................LAYER GETTER...........................
//.............................................................
function Physics_entity_get_layer( int id_, int layer_ );
begin
    if( (id_.lphysics.layers&(1<<layer_)) == 0 )
      return(false);
   else
      return(true);
   end
end
//......................LAYER RESET............................
function Physics_entity_reset_layers();
begin
   father.lphysics.layers = 0;
   return(0);
end
//.............................................................
Title: Re:Duda con el seteo de un bit en un int.
Post by: laghengar on June 07, 2013, 03:04:46 PM
De ná hombre, aquí estamos :)