Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Frankenween
22 / 1 / 0
Регистрация: 25.10.2016
Сообщений: 36
1

Не обновляются значения переменной

14.06.2017, 21:33. Просмотров 128. Ответов 6
Метки нет (Все метки)

Добрый день. Пишу программу на c++, в которой есть структура
C++
1
2
3
struct Cords {
    int x1, y1;
};
и есть класс, в котором есть метод move
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
void move(int offsetX, int offsetY) {
        location.x1 += offsetX * 50;
        if (last_rotation > 0 ? location.x1 >= 50 : location.x1 > 50 && 
            location.x1 + sizes[0] < 650)
            ship_sprite.move(offsetX * 50, 0);
        else{
            location.x1 -= offsetX * 50;
        }
 
        location.y1 += offsetY * 50;
        if (location.y1 >= 0 &&
            location.y1 + sizes[1] < 550){ 
            ship_sprite.move(0, offsetY * 50); 
            printf("ypos - %d \n", location.y1);
        }
        else {
            location.y1 -= offsetY * 50;
        }
    }
проблема заключается в том, что переменная location.y1 не обновляется, а перманентно хранит значение 250, что так же подтверждает вывод в консоль. Что я делаю не так? При вызове в функцию передаются вполне конкретные значения(1 или -1), в чём я уверен
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.06.2017, 21:33
Ответы с готовыми решениями:

Сортировка строк двумерного массива выбором. Не обновляются значения
Здравствуйте. Не получается сортировка массива выбором. Нужно отсортировать...

Преобразование значения переменной (long) через функцию в значения структуры
Я недавно начал заниматься С++ и программированием в целом. Вот у меня такая...

Присвоить значения переменной Х
Присвоить значение переменной х и всем объектам, что с ней связаны. struct a...

Ограничение значения переменной
Я не знаю, как называется такая мат. операция, но суть такова: Имеется...

Присваивание значения переменной
Доброго времени суток. string name, message; cout &lt;&lt; &quot; Введите Ваше имя...

6
Nishen
468 / 293 / 156
Регистрация: 26.02.2015
Сообщений: 1,363
Завершенные тесты: 2
14.06.2017, 21:37 2
Дебаггером посмотрите, у вас хоть раз не выполняется условие ?
C++
1
2
if (location.y1 >= 0 &&
            location.y1 + sizes[1] < 550)
0
Frankenween
22 / 1 / 0
Регистрация: 25.10.2016
Сообщений: 36
14.06.2017, 21:40  [ТС] 3
Nishen, вообще дебаггером смотреть крайне неудобно из-за того, что юзаю sfml и функция вызывается нажатимем клавиши, но что интересно первое условие иногда не выполняется
0
DU3
281 / 233 / 115
Регистрация: 07.09.2016
Сообщений: 587
14.06.2017, 21:42 4
какая разница как и когда она вызывается? брейкпоинты не умеете ставить чтоли?
0
Frankenween
22 / 1 / 0
Регистрация: 25.10.2016
Сообщений: 36
14.06.2017, 21:50  [ТС] 5
потому что если бы оно не выполнялось, тогда я бы вообще убился. я типа морского боя делаю и эти условия для того, чтобы корабли за поле не выходили. В левую сторону(<50) не уходит, а вправо на сколько угодно

Добавлено через 6 минут
все, с location.y1 я починил, но возникла другая проблема: в условии
C++
1
2
if (last_rotation > 0 ? location.x1 >= 50 : location.x1 > 50 && 
            location.x1 + sizes[0] < 650)
второе условие при x1 = 450 sizes[0] = 200 не должно выполнятся, однако код в условии выполняется
0
Nishen
468 / 293 / 156
Регистрация: 26.02.2015
Сообщений: 1,363
Завершенные тесты: 2
14.06.2017, 21:56 6
жесть какая-то
0
Frankenween
22 / 1 / 0
Регистрация: 25.10.2016
Сообщений: 36
14.06.2017, 22:44  [ТС] 7
Nishen, так вообще бывает? может компилятор кривой?

Добавлено через 1 минуту
однако при sizes[0] = 50 уже работает
WTF?!?!?!

Добавлено через 44 минуты
всё, я разобрался
last_rotation > 0 ? location.x1 >= 50 : (location.x1 > 50 && location.x1 + sizes[0] < 650) оно так выполнялось, а надо так:
C++
1
2
if ((last_rotation > 0 ? location.x1 >= 50 : location.x1 > 50) && 
            location.x1 + sizes[0] <= 650)
0
14.06.2017, 22:44
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.06.2017, 22:44

Увеличение значения переменной
Доброго времени суток, форумчане) Утром начал учить C++, сейчас пишу...

Подстановка значения переменной
Нужно функция которая созздаст ресурс с именем aX где X значение переданного...

Запись значения переменной в файл
Здравствуйте. Помогите, пожалуйста, в решении такой проблемы. Не могу найти код...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru