Hay dos formas:
Si no tienes una librería específica de juegos, normalmente las librerías que utilices para los gráficos incluyen soporte de "Rectángulos". Un rectángulo es eso, un rectángulo dentro de una imagen, y le dices donde empieza y su tamaño. Cuando pintas una imagen (el tileset), no la pintas toda sino solo un rectángulo dentro de ella. Por ejemplo, para tu sprite de tamaño (28, 40) en la posión (column, row) dentro del tileset, que quieres dibujar en la posición (x,y) de la pantalla, sería algo así:
Código:
spriteset = loadimage("protachronotrigger.png");
rect = new Rectangle(column * 28, row * 40, 28, 40);
screen.drawSprite(tileset, x, y, rect);
Esto se hace por ejemplo con la SDL básica o el sistema básico de dibujo de Java (Android, swing...) Si tus librerías gráficas no tienen soporte de rectángulos (por ejemplo, porque estás trabajando a muy bajo nivel directamente sobre el framebuffer de la máquina), te recomiendo que te crees tus propias funciones de dibujo con tus propios rectángulos.
Ahora, si tienes una librería de soporte de juegos, normalmente soportan ya tilesets y lo que haces es crear un sprite a partir de ese tileset. Algo así:
Código:
tileset = new TileSet("protachronotrigger.png", 7, 4); // creas un tileset con 7 columnas y 4 filas
sprite = new Sprite(spriteset.getTile(5, 1)); // creas un nuevo sprite a partir del tile en la columna 5, fila 4
animatedSprite = new AnimatedSprite(spriteset.getRow(2); // creas un nuevo sprite animado a partir de la fila 2 (la animación son todos los sprites de esa fila)
Y luego dibujas los sprites como toque en la librería gráfica. Algo así:
Código:
screen.drawSprite(sprite, x, y); // pinta el sprite, sin más
screen.drawAnimatedSprite(animatedsprite, x, y, 3); // pinta el frame 3 del aniamted sprite
Así se hace por ejemplo en en la librería de juegos andengine (para Java Android) y creo recordar que con alguna librería extra de SDL también. Cualquier librería de juegos va a tener un sistema como este para los sprite set.
Marcadores