Я работаю над новым меню DirectX для игры, так как мое предыдущее меню сильно устарело и плохо кодировалось.
В настоящее время я делаю много вещей в массивах и циклах, но яУ меня одна проблема. Когда я загружаю массив с некоторыми логическими значениями, и я прохожу массив и передаю логические функции, он не будет работать.
При нажатии кнопки в меню логическое значение должно быть либовключено или отключено. Когда я пытаюсь сделать это напрямую без массива, это работает. Логическое значение включается и отключается, когда я этого хочу.
В настоящее время я не знаю, почему логическое значение не распознается, когда я просто добавляю его в цикл.
Код цикла:
const char* ButtonArray[] = { "Button1", "Button2", "Button3" };
bool varsArray[] = { bool1, bool2, bool3};
int iWrapperHeight = (ARRAYSIZE(ButtonArray) + 1) * iItemHeight;
defWrapperHeight = iWrapperHeight;
Wrapper* wrapper1 = new Wrapper(0, iBodyX, iBodyY, iTabWidth, iWrapperHeight, "Wrapper");
wrapper1->Draw();
CreateOption* option = new CreateOption(0, iBodyX, iBodyY += (iItemHeight * 0.5), iW, iH);
for (int i = 0; i < ARRAYSIZE(ButtonArray); i++) {
option->ToggleButton(iItemHeight, ButtonArray[i], varsArray[i]);
}
Здесь я рисую обертку, кнопки рисования и т. Д. *
Теперь, если бы я изменил
option->ToggleButton(iItemHeight, ButtonArray[i], varsArray[i]);
на
option->ToggleButton(iItemHeight, ButtonArray[i], bool1);
Код работает. Это явно не то, что я хочу, так как 3 кнопки влияют на один и тот же логический. Моя функция ToggleButton выглядит следующим образом.
void ToggleButton(int iYAdder, const char* szTitle, bool& bVar)
, и если мышь находится в правильном месте и щелкнула мышь: bVar =! BVar
Так что, да, я искал, есливозможно я облажался с работой массива, не уверен. Любая помощь будет высоко оценена.
С уважением