0

プロジェクトでSOILを使用していますが、単一のテクスチャを取り込んでから、最初のテクスチャのさまざまな部分を使用してテクスチャの配列に変換する必要があります。(スプライトシートを使用するには)。

ちなみに私はSDLとOpenGLを使っています。

4

1 に答える 1

1

OpenGLのような最新の3DAPIでスプライトシートを使用する一般的な方法は、テクスチャ座標を使用して、個々のテクスチャのさまざまな部分に対処することです。分割することはできますが、テクスチャ座標を使用する方がはるかにリソースに優しいです。

たとえば、水平方向に3フレーム、それぞれ32ピクセルx 32ピクセル(合計サイズ96x32)の単純なスプライトシートがある場合、次のコードを使用して3番目のフレームを描画します。

// 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();
于 2009-03-01T04:59:51.307 に答える