次のコードは、2つの大腿四頭筋、しかし、1つのクワッドを使用していない、と質感がそれに応じて調整する適応。私はすべてのテクスチャ処理コードを取り除いたことに注意してください。投影行列は、glOrthof(0.0f, 1.0f, 0.0f, 1.0f, -1.0f, 1.0f);
のみを含む。
static class Quad2D {
public Quad2D() {
/* SNIP create buffers */
float[] coords = { 1.0f, 0.0f, 0.0f, 0.0f, 1.0f, 1.0f, 0.0f, 1.0f, };
mFVertexBuffer.put(coords);
float[] texs = { 1.0f, 1.0f, 0.0f, 1.0f, 1.0f, 0.0f, 0.0f, 0.0f, };
mTexBuffer.put(texs);
/* SNIP reposition buffer indices */
}
public void updateTexCoords(float t) {
t = t % 1.0f;
mTexBuffer.put(0, 0.33f+t);
mTexBuffer.put(2, 0.0f+t);
mTexBuffer.put(4, 0.33f+t);
mTexBuffer.put(6, 0.0f+t);
}
public void draw(GL10 gl) {
glVertexPointer(2, GL_FLOAT, 0, mFVertexBuffer);
glTexCoordPointer(2, GL_FLOAT, 0, mTexBuffer);
glDrawArrays(GL_TRIANGLE_STRIP, 0, 4);
}
/* SNIP members */
}
今updateTexCoords
を呼び出す方法:Quad2D
は、そのテックスCOORDS updateTexCoords
を使用してアニメーション化することができますクワッドを定義しますか? の内部では、次のコードを置く:テクスチャ座標が1.0f
を越えて行くので
long time = SystemClock.uptimeMillis() % 3000L;
float velocity = 1.0f/3000.0f;
float offset = time * velocity;
mQuad.updateTexCoords(offset);
を、S座標に対するテクスチャラップはGL_REPEAT
に設定する必要があります。
私の脳を通ってスクランブルする_あなたを助けてはならない[受け入れるべきではない](http://stackoverflow.com/a/10179587/1262542)。大丈夫です。 –
@StefanHanke申し訳ありませんが、私があなたの言うことを理解するはずですから、私はこのアルゴリズムをコーディングしようとしましたが、成功できません。 – droidmachine