これが私がこれまでに持っているものです:
Rectangle::Rectangle(int x, int y)
{
sizeX_ = x * CASE;
sizeY_ = y * CASE;
texture_ = gdl::Image::load("./ressources/floor.jpg");
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);
}
void Rectangle::draw()
{
texture_.bind();
glBegin(GL_QUADS);
glTexCoord2f(0.0f, 0.0f);
glVertex3f(0.0f, 0.0f, 0.0f);
glTexCoord2f(sizeX_ / CASE, 0.0f);
glVertex3f(sizeX_, 0.0f, 0.0f);
glTexCoord2f(0.0f, sizeY_ / CASE);
glVertex3f(sizeX_, 0.0f, sizeY_);
glTexCoord2f(sizeX_ / CASE, sizeY_ / CASE);
glVertex3f(0.0f, 0.0f, sizeY_);
glEnd();
}
コンストラクターは場合によってはマップのサイズを取得します。例: (10, 10)
. 実際のサイズは になり(10 * CASE)
ますCASE = 400
。
しかし、これはテクスチャを正しく繰り返していません。左上のポイントから右下のポイントにかけて、テクスチャーが縮小されて(良い点)パックされているように見えます。
私は何か間違っていますか?