Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





El Bit Como Tamaño De Variable

Iniciado por nsL, 14 de Marzo de 2005, 05:57:07 PM

« anterior - próximo »

nsL

 Hola!

Necesito crearme unas mascaras de bits para unas superficies en SDL. Lo suyo seria poner 1 o 0 por cada pixel, dependiendo de si pertenece a la imagen o es parte del color transparente (Es para tratar colisiones). Por poder puedo hacerlo con int pero me parece absurdo usar 4bytes (eran 4 no?) por pixel cuando solo necesito un bit, o hacerlo con BYTE.
Tb he leido por ahi que para acceder a los bits puede ser un problema añadido porq la longitud minima que acceden los procesadores suele ser la palabra e intentar acceder al bit "n" supone mas computo de cpu.

¿Q me recomendais?

Saludos!  B)  
Yo no muero hasta la muerte -

CoLSoN2

 si te restringes a imágenes de tamaño múltiplo de ocho puedes usar bytes (un byte = 8 pixeles), y utilizar los operadores de bits para acceder a ellos individualmente. ¿Si es más costoso para la CPU? Para acceder a ellos quizá, pero si es para colisiones por pixel, puedes hacer chequeos de ocho en ocho pixeles en fila (operando byte a byte, o más si usas un tipo de dato mayor) y ahí recuperas. Además ocuparían 8 veces menos memoria.
Manuel F. Lara
Descargar juegos indie  - blog sobre juegos indie y casual
El Desarrollo Personal.com  - blog sobre productividad, motivación y espíritu emprendedor

nsL

 Pues tienes razon, lo de multiplos de 8 no se me habia ocurrido :P
Gracias por la ayuda!

Saludos!  B)  
Yo no muero hasta la muerte -

samsaga2

 Para colisiones lo mejor es usar bits (empaquetandolos en unidades de un byte) asi luego para testear si dos sprites han colisionado es facil (y MUY rapido) hacerlo a vase de ANDs.

2d collision tutorial [PDF]






Stratos es un servicio gratuito, cuyos costes se cubren en parte con la publicidad.
Por favor, desactiva el bloqueador de anuncios en esta web para ayudar a que siga adelante.
Muchísimas gracias.