В чем проблема с логикой переменной моего местоположения? [закрыто]C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 В чем проблема с логикой переменной моего местоположения? [закрыто]

Сообщение Anonymous »

Я делаю небольшую игру C ++ с SDL3 (пока нет занятий, смеется). Мой спрайт перемещается вокруг окна, и когда он достигает краев, фон меняется, а спрайт телепортируется на противоположную сторону. Я отслеживаю это с помощью переменной местоположения (1 для начала, 2 для справа, 3 для слева и т. Д.). Тем не менее, у меня есть ошибка, в которой я не могу получить доступ к местоположению 2 (справа) после того, как я находился в месте 3 (слева). Я знаю, что проблема с логикой местоположения, но я не могу понять это. Есть предложения? Вот код, связанный с местоположением: < /p>
if (currentBackdrop == backdrop1) {
location = 1;
}
else if (currentBackdrop == backdrop2) {
location = 2;
}
else if (currentBackdrop == backdrop3) {
location = 3;
}
else if (currentBackdrop == backdrop4) {
location = 4;
}
else if (currentBackdrop == backdrop5) {
location = 5;
}

//right from start
if (posX == 1250.5 and location == 1) {
currentBackdrop = backdrop2;
posX = -79.5;
SDL_Log("Location is currently %d", location);
}
//left from start
else if (posX == -99.5 and location == 1) {
currentBackdrop = backdrop3;
posX = 1230.5;
SDL_Log("Location is currently %d", location);
}
//up from start
else if (posY == -142 and location == 1) {
currentBackdrop = backdrop4;
posY = 628;
SDL_Log("Location is currently %d", location);
}
//down from start
else if (posY == 688 and location == 1) {
currentBackdrop = backdrop5;
posY = -122;
SDL_Log("Location is currently %d", location);
}

//left from location 2
else if (posX == -99.5 and location == 2) {
currentBackdrop = backdrop1;
posX = 1230.5;
SDL_Log("Location is currently %d", location);
}
//right from location 3
else if (posX == 1250.5 and location == 3) {
currentBackdrop = backdrop1;
posX = -122;
SDL_Log("Location is currently %d", location);
}

//down from location 4
else if (posY == 688 and location == 4) {
currentBackdrop = backdrop1;
posY = -122;
SDL_Log("Location is currently %d", location);
}
//up from location 5
else if (posY == -142 and location == 5) {
currentBackdrop = backdrop1;
posY = 628;
SDL_Log("Location is currently %d", location);
}



Подробнее здесь: https://stackoverflow.com/questions/794 ... n-variable
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»