Anuncios Google

Tile pal

buenas:

esta duda la tengo desde hace mucho y no consigo resolverla

quiero averiguar la paleta de un tile en concreto del mapa, si se puede la de un pixel en concreto, si se pueden las dos mejor, pero no lo cosnigo.

estoy en libnds

gracias: sobre todo a ti knightfox que ayudas mucho en los foros


Be Libre my Friend.


Anuncios Google

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.
Imagen de kNightFox

Mirate

Imagen de OdnetninI

mas menos leyendo, he sacado

mas menos leyendo, he sacado una cosa asi:

if(bg0Map[x + (y * 32)] = (tile) | paleta){

//Acccion a ejecutar

}

Una cosa: el tile sera el numero del tileset en el que esta y la paleta ¿con el rgb?


Be Libre my Friend.

Imagen de kNightFox

 Supongo que intentas hacer

 Supongo que intentas hacer algo parecido a esto:
 

	// Funcion NF_GetPoint();
	u8 NF_GetPoint(u8 slot, s32 x, s32 y) {
 
		// Si la coordenada esta fuera de rango, devuelve 0
		if (
			(x < 0)
			||
			(y < 0)
			||
			(x >= NF_CMAP[slot].width)
			||
			(y >= NF_CMAP[slot].height)
			) {
				// Devuelve 0
				return 0;
 
		} else {	// Si la coordenada esta dentro del rango...
 
			// Calcula el ancho en tiles del mapa
			u16 columns = (NF_CMAP[slot].width >> 3);		// (width / 8);
 
			// Calcula los tiles de posicion	(x / 8); (y / 8);
			u16 tile_x = (x >> 3);
			u16 tile_y = (y >> 3) + 1;			// +1, por que la primera fila se reserva para la referencia de tiles
 
			// Calcula los pixeles relativos
			u16 pixel_x = x - (tile_x << 3);
			u16 pixel_y = (y + 8) - (tile_y << 3); 
 
			// Calcula la posicion de tile dentro del archivo de mapa
			s32 address = (((tile_y * columns) + tile_x) << 1);
			u16 lobyte = *(NF_CMAP[slot].map + address);
			u16 hibyte = *(NF_CMAP[slot].map + (address + 1));
			u16 tile = ((hibyte << 8) + lobyte);
 
			// Obten el valor del pixel leyendola del archivo de tiles
			address = ((tile << 6) + (pixel_y << 3) + pixel_x);	// (tile * 64) + (y * 8) + x
			lobyte = *(NF_CMAP[slot].tiles + address);
 
			// Devuelve el valor del pixel
			return lobyte;
 
		}
 
	}


Nuestra web oficial:
http://www.nightfoxandco.com/
 
Siguenos en facebook:
http://www.facebook.com/pages/NightFox-Co/284338634917917
 
Por favor, no useis los MP para preguntas, usar el FORO:
http://www.nightfoxandco.com/forum/
Asi nos ahorramos de contestar lo mismo 20 veces.

 

Imagen de OdnetninI

muchas gracias, como no me

muchas gracias, como no me iba bien el de los pixeles cogí el tuyo de los tiles, lo he adaptado para poder seguir con mi homebrew

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.