タイルシートをテクスチャとしてロードしていて、テクスチャから1つのタイルをレンダリングしようとしています
glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE);
glBindTexture(GL_TEXTURE_2D, TileSheet);
float TY = (Tile / 16) * 0.0625;
float TX = (Tile % 16) * 0.0625;
glBegin(GL_QUADS);
glTexCoord2f(TX, TY); glTexCoord2f(0, 0); glVertex3f(X, Y, 0);
glTexCoord2f(TX + 0.0625, TY); glVertex3f(X + TILE_SIZE, Y, 0);
glTexCoord2f(TX + 0.0625, TY + 0.0625); glVertex3f(X + TILE_SIZE, Y + TILE_SIZE, 0);
glTexCoord2f(TX, TY + 0.0625); glVertex3f(X, Y + TILE_SIZE, 0);
glEnd();
Tileはであり、intタイルシートにレンダリングするタイルを表します。タイルシート
0.0625の幅と高さ/1行あたりのタイル数(512 / 16)
つまり、タイルシートの幅は16タイルなので、Tile16の場合は、左側のタイルとタイルシートの上部から1つのタイルになります。しかし、これは私が得るものです
つまり、左上が[0][0]で、右下が[1][0]何が間違っているのかわかりません。どんな助けでも大歓迎です。
ありがとう。
また、それが正しいタイルをレンダリングする場合でも、タイルが上記のように終了するTile == 0とすぐに言及する必要があります。Tile > 0