[SDL] isometric mouse mapping problem

antonmasteR antonmaster at mail.ru
Sat Feb 25 09:57:06 PST 2006


Hello there.
   
   I was writing something like isometric tile engine and had the famous problem: mouse mapping =).
Well i do it by comparing the colors of the mouse tile ( you know, this isometric diamond with read yellow green and blue corners)
But there is a problem. Maybe its some getting pixel error, i dont know.
Here is the code:

(code)

        int x, y;
	point offset;
	Uint8 r, g, b;
	Uint16 *raw_pixel;
	Uint32 pixel;
	int of;
	
	x = Cursor.x / TILE_WIDTH;
	y = Cursor.y / TILE_HEIGHT;
	
	offset.x = Cursor.x - (x * TILE_WIDTH);
	offset.y = Cursor.y - (y * TILE_HEIGHT);
	
	SDL_LockSurface(mousemap);
	
	raw_pixel = (Uint16 *) mousemap->pixels;
	of = mousemap->pitch / 2 * offset.y + offset.x;
	
	pixel = raw_pixel[of];
	printf("\n--%d--\n",pixel);
	
	SDL_GetRGB(pixel, mousemap->format, &r, &g, &b);
	
	SDL_UnlockSurface(mousemap);
(/code)

Its not the complete code, but error is somewhere here. It doesnt get the right color.

Thanks for any help.






More information about the SDL mailing list