стрелка, функция возвращает соответствующее значение
for (int i = 0; i < 5; i++)
{
if (arrow.Y == y / 2 + gap * i)
{
result = i;
return result;
Возможна ли такая запись возврата значения в функции? У меня не пишет никаких синтаксических ошибок, но возвращать ничего не хочет
Функцию целиком можно увидеть? Запись корректна и даже избыточна.
я понимаю, что функция не самая хорошая, но что есть то есть
Здесь не на всех путях есть возврат
Возврат наступает только при нажатии на enter
На пастбин такое надо, имхо, чтобы всем смотреть удобнее было, в том числе и вам)
Ну тогда должно возвращать. Если условие встречается
Вот что-то не возвращает
Ну а условие встречается? Что, зацикливается?
Дебаггер где сбоит?
Если при нажатии на enter стрелка находится на y/2 + gap * i, то возвращается i (должно во всяком случае) Стрелка бегает по значениям Y + gap * что-то. Другого условия не может быть
Ну так как было понятно, что значение не возвращается? Всё зацикливается?
Да, не может выйти из цикла
Значит не встретил условие. Оно не выполнилось
может посмотришь у себя со свежими мозгами? а то у меня вообще не хочет https://pastebin.com/0vSfGP66
Что за адова смесь с++ , win API и нестандартных домовых функций?
Это менюшка для игры, которая не зависит от входных данных
Это просто шедевр! result = i; return result; break; Может просто return i; ?
Так там так и задумано у тебя, нет?
Да, так и надо
Возвращать ничего не хочет А ЧТО ВМЕСТО ЭТОГО?
Не понял вопроса
https://docs.microsoft.com/ru-ru/cpp/c-runtime-library/reference/getch-getwch?view=msvc-160 Вот тут прочитай все про эту магическую функцию. Что она возвращает и как работает
Без цикла фор всё работает, если 4 значения координаты y ручками прописать
Ты уж если начал на win API, значит фигач на нём, если стандарт - то стандарт (но на нём такого не написать), А этого мутанта - урода использовать нельзя. (getch)
А зачем так нервничать? Все с чего-то начинают
Не, должно работать...
А зачем там цикл по ENTER вообще?
Чтобы не писать значения вручную. Вдруг я захочу 100 кнопок сделать, а не 5?
Тебе там не нужен этот for ни на фиг, А это условие не срабатывает, очевидно. if (arrow.Y == y / 2 + gap * i)
Нет, все равно не нужен цикл.
Не могу согласиться
там надо написать одно выражение для вычисления номера выбранного пункта меню и его вернуть, цикл не нужен
Там происходит возврат только в случае одной итерации цикла, при соблюдении условия IF, поэтому цикл не нужен, проблема только в том, что в условии ошибка , и выход не производится вообще никогда.
arrow.Y уже содержит ссылку на пункт меню, надо только превратить это значение в номер меню по порядку, это всего лишь одно выражение
Его надо вычислить и безусловно вернуть
А в этом есть смысл
И потом выкинь _getch и замени его на консольный ввод win API, и cout тоже
Когда в консоли разберусь, буду интерфейс делать нормальный
Обсуждают сегодня