У минулій частині уроку ми додали в меню можливість скидання рівня розшуку та отримання будь-якої зброї. Також ми з'ясували, яким чином створюються підменю. Давай трохи реорганізуємо наш код, створивши підменю гравця та підменю зброї, помістивши відповідні пункти в ці підменю:
Тепер трохи відредагуємо функцію Setup:
Щоб зробити код більш читабельним, я зроблю кілька функцій для кожного типу: гравець і зброя.
Давай очистимо деякий код з видачею зірок розшуку, як ми зробили з селектором зброї, і помістимо все в одну функцію:
Я видалила інший код з onMainMenuItemSelect, оскільки тепер він марний. Нам також потрібно змінити одну строку коду в нашому селекторі зброї:
Також ми повинні видалити виклик WeaponselectorMenu() в конструкторі і замість цього помістити SetupPlayerWeapons в Setup:
Чудово! Тепер давай зробимо підменю транспорту та додамо селектор автомобілів (як ми зробили з селектором зброї), а також спосіб спавну авто за його назвою. Почнемо з меню:
І відредагуємо нашу функцію Setup:
Тепер створимо метод SetupVehicleFunction:
Чудово! Тепер тут ми помістимо всі наші функції автомобіля. Почнемо з селектора авто:
Реалізація схожа на селектор зброї, тому я не буду коментувати цей код повторно. Створимо вибраний автомобіль і помістимо в нього гравця:
Давай помістимо цю функцію в SetupVehicleFunctions і перевіримо працездатність у грі:
Чудово! Все працює. Тепер дамо гравцеві можливість створити автомобіль за його назвою моделі. Це досить просто. Почнемо зі створення нової функції та елемента меню:
Використаємо функцію Game.GetUserInput, яка створює поле введення і повертає введену строку:
Тепер необхідно перевірити, чи є така модель у грі. Гравець може ввести будь-який набір випадкових символів, що може призвести до краху гри. Тому не забудь додати перевірку на валідність моделі:
Створюємо автомобіль і садимо в нього гравця:
Запишемо нашу функцію в SetupVehicleFunctions і перевіримо код у грі:
Все працює. Додамо останню функцію в меню зброї - отримати все існуюче зброю в грі. Створимо нову функцію:
І додамо функціонал, який практично нічим не відрізняється від того, який ми використовували раніше:
Запишемо нашу функцію в SetupWeaponFunctions і перевіримо це в грі:
Все працює! Про інші можливості в створенні меню ми поговоримо в третій частині нашого уроку.