У меня возникла проблема с базовой структурой программы, над которой я работаю. Я очень неопытный программист, пытающийся научиться основам программ, использующих несколько состояний.
Прямо сейчас у меня есть очень простая игровая программа с игровым циклом, который перенаправляет события, логику и рендеринг в мой класс StateManager, который выталкивает и извлекает состояния в файл . Затем класс StateManager перенаправляет события, логику и рендеринг в любое состояние, которое находится в задней части () вектора. Идея состоит в том, чтобы иметь набор различных состояний для каждой фазы программы (в данном случае это простая игра с заставками, меню, геймплеем, экранами смерти и т. д.)...
Тем не менее, я ОЧЕНЬ начинающий кодер (стараюсь изо всех сил учиться), и я столкнулся с фундаментальной проблемой с моей программой прямо с самого первого класса...
Первый класс, который я сделал, это SplashScreenState. И основная концепция заключалась в том, чтобы иметь состояние, которое, по сути, просто показывает серию «изображений заставки» (скажем, 3, например), и каждый раз, когда пользователь нажимает клавишу, он переключается на следующее изображение и наконец (когда нет изображений заставки для циклического просмотра) переключается в следующее состояние (состояние меню).
Моя проблема в том, что мне трудно понять, как это структурировать. Первоначально я сделал ошибку, рассматривая каждое отдельное изображение экрана-заставки как экземпляр SplashScreenState. Однако я решил, что это неправильно, поскольку технически все 3 экрана-заставки являются частью одного и того же «состояния».
Итак, теперь у меня есть две основные проблемы:
Первая проблема заключается в том, что я не уверен, как/где хранить все изображения заставки. Если я хочу переключаться между тремя разными изображениями экрана при запуске программы, должен ли я сделать их всеми членами класса SplashScreenState? Или разумнее просто иметь один член класса для «currentImage», и каждый раз, когда пользователь нажимает клавишу, он запускает функцию load() для загрузки следующего изображения в указатель currentImage? Лучше сделать массив или вектор изображений и циклически перемещаться по ним? Я просто не уверен...
Моя вторая проблема связана с обработкой событий () SplashScreenState. Я знаю, что хочу, чтобы изображение на экране менялось примерно так; *image1 -> image 2 -> image 3 -> changeState(menuState).. Таким образом, каждый раз, когда пользователь нажимает клавишу на клавиатуре, он переключается на следующую заставку до последней заставки, где она затем изменится состояние в главное меню. Я не уверен, что это лучший способ сделать это. Должен ли я создавать перечисление для каждого экрана-заставки и увеличивать их (до последнего экрана, где он меняет состояния)? Я также думаю, что если бы я хранил все свои различные экраны в массиве, то я мог бы легко увеличить их, но тогда это было бы неоптимизированным, потому что все экраны должны были бы храниться в памяти все время?
В любом случае, я знаю, что этот вопрос может быть очень простым и нубским, но, к сожалению, я сейчас именно так! У меня не было никакого формального образования в области программирования, и я учился сам, поэтому я очень ценю всю помощь и опыт, представленные на этом сайте! ^^
Спасибо!