Я создал 2D-массив, который представляет собой карту для моих плиток для размещения:C++ 2D массив Карта для Черепица Выход Перевернутый
int sMap[12][20] = {
{1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1},
{1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 1},
{1, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1},
{1, 0, 1, 0, 1, 2, 1, 0, 0, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 1},
{1, 0, 1, 0, 1, 1, 1, 1, 0, 1, 0, 0, 1, 0, 1, 1, 1, 0, 0, 1},
{1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1},
{1, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1},
{1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 2, 0, 0, 1, 0, 0, 0, 1},
{1, 1, 0, 0, 0, 0, 0, 1, 2, 1, 0, 0, 1, 0, 1, 1, 2, 2, 2, 1},
{1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1},
{1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1},
{1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1},
};
После того, как мои плитки были загружены, я использовать этот function()
чтобы поместить плитка:
for (int y = 0; y < 12; y++){ //for (int y = 11; y >= 0; y--){
for (int x = 0; x < 20; x++){ //for (int x = 19; x >= 0; x--){
if (sMap[y][x] == 1)
glBindTexture(GL_TEXTURE_2D, brick1);
else if (sMap[y][x] == 2)
glBindTexture(GL_TEXTURE_2D, brick2);
else
glBindTexture(GL_TEXTURE_2D, wall);
glBegin(GL_QUADS);
glTexCoord2f(0.0f, 0.0f); glVertex3f(float(x), float(y), 0.0f);
glTexCoord2f(1.0f, 0.0f); glVertex3f(float(x + 1), float(y), 0.0f);
glTexCoord2f(1.0f, 1.0f); glVertex3f(float(x + 1), float(y + 1), 0.0f);
glTexCoord2f(0.0f, 1.0f); glVertex3f(float(x), float(y + 1), 0.0f);
glEnd();
}
}
по какой-то причине, мой Map
инвертируется ... (Таким образом, нижняя строка цифр в map
выше является верхняя линия плитки на экране, а второй линии вверх на map
является второй линия плитки вниз на экране).
Его понимание, вы итерации, выбирая каждую цифру и назначая правильную плитку. Я пробовал менять x/y
, но это поворачивает карту на экране, так что ее 12 плиток на x
и 20 плитках на y
.
Я хочу, чтобы мои плитки на экране отображали карту выше. Любые идеи, как это исправить? Благодарю.
Это имеет смысл. К сожалению, это, похоже, не решает проблему ... Фактически, она выводит тот же самый вид на экране, что и предыдущие циклы :( – Reanimation
Но эй, ты сделал это? Если бы вы это сделали, вы отразили его дважды У вас есть либо петля, либо вычитание :) – ceruleus
Yeh, он не работал. Мне придется попробовать метод вычитания ... – Reanimation