Existe uma maneira de dividir uma textura em uma matriz deles o uso do solo em C ++?
Pergunta
Eu estou usando SOLO no meu projeto e eu preciso levar em uma textura única, e de convertê-lo em uma matriz de texturas usando diferentes partes do primeiro textura. (Para usar uma folha de sprite).
Eu estou usando SDL e OpenGL pelo caminho.
Solução
A maneira típica de uso Sprite sheeting com uma API 3D moderno, como OpenGL é usar textura coordenadas para abordar diferentes partes de sua textura individual. Enquanto você pode dividi-lo é muito mais recursos amigável de usar coordenadas de textura.
Por exemplo, se você tivesse uma folha de sprite simples com 3 quadros horizontalmente, cada 32 pixels por 32 pixels (para um tamanho total de 96x32), você usaria o seguinte código para desenhar o 3º quadro:
// I assume you have bound your source texture
// This is the U coordinate's origin in texture space
float xStart = 64.0f / 96.0f;
// This is one frame width in texture space
float xIncrement = 32.0f / 96.0f;
glBegin(GL_QUADS);
glTexCoord2f(xStart, 0);
glVertex2f(-16.0f, 16.0f);
glTexCoord2f(xStart, 1.0f);
glVertex2f(-16.0f, -16.0f);
glTexCoord2f(xStart + xIncrement, 0);
glVertex2f(16.0f, 16.0f);
glTexCoord2f(xStart + xIncrement, 1.0f);
glVertex2f(16.0f, -16.0f);
glEnd();
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow