Pergunta

Eu tenho um sprite carregado como uma textura e eu preciso animá-lo, permitindo-lhe "face" esquerda ou direita - essencialmente às vezes eu preciso para "flip"-lo. Eu sei que OpenGL tem uma glTranslate que reposiciona um objeto, e glRotate que gira. Existe um método que simplesmente inverte-lo através de um eixo? Se não, como você conseguir isso?

Foi útil?

Solução

Eu não brinquei com sprites ponto, mas eu acredito que eles são texturas. Texturas têm matrizes textura, o que significa que você pode usar glTranslatef(), glScalef() e glRotatef() sobre eles.

Gostaria de experimentar algo ao longo das linhas de glScalef(-1,1,1); que ia virar a textura coordenar pelo eixo X.

Como eu disse, eu não tenho jogado com sprites ponto, mas eu não mexer com matrizes de textura também. Eles parecem bastante útil, no entanto.

Update: Eu já joguei com matrizes textura no mesmo período. Da mesma forma que você alternar entre matrizes modelview e projeção, você pode alternar a matriz de textura; aproximadamente:. glMatrixMode(GL_TEXTURE); após o qual você pode fazer as operações acima mencionadas

Você também pode apenas pintar um quad / dois triângulos e ser feito com ele:)

Outras dicas

Você não pode fazer isso com OpenGL ponto-sprites; embora você pode mover o centro do sprite de volta, a forma é sempre orientada da mesma maneira.

O que você pode fazer é desenhar seus sprites como quads, que permite inverter, girar e mexer com eles da maneira que quiser. Há tutoriais sobre sprites desenho manualmente (aka cartazes) sobre NeHe

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top