2009-03-01 11 views

cevap

1

OpenGL gibi modern bir 3D api ile sprite kaplama kullanmanın tipik yolu, tek tek dokumanızın farklı bölümlerini ele almak için doku koordinatlarını kullanmaktır. Onu bölebilirken, doku koordinatlarını kullanmak çok daha kolay kaynaklıdır. Örneğin

, yatay 3 kare basit hareketli grafik levha olsaydı, sen 3 cer için aşağıdaki kodu kullanmak (96x32 toplam boyutu için) 32 piksel her 32 piksel:

// 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(); 
+0

Evet, ama bende de yükseklik olmalı. – William

+0

Yükseklik, genişlikle aynı şekilde çalışır, sadece yaptığım değişkenleri kullanın, ancak bunları toplam genişliğiniz yerine toplam yüksekliğinize göre ölçeklendirin. –

İlgili konular