Comments 14
Про сам паттерн Команда не сказано ни слова.
-funroll-all-loops
Это псевдооптимизаторский флаг, который обычно ухудшает производительность, поверьте гентушникам.
Генту очень хороший дистрибутив, верю
в примере и если так применить в игре с известным количеством элементов до 100 вроде разворачивается если смотреть на ассемблер
https://developers.redhat.com/blog/2018/03/21/compiler-and-linker-flags-gcc#recommended_build_flags
можно еще тут посмотреть, в своё время смотрел
ValidRules - вектор, который хранит общие нюансы игровые - т.к. в данном случае мы рассматриваем 2Д, то это я считаю очень удобно, например какие-то общие правила. Например как на доске двигаются фигуры и т.д.
ValidQuests - вектор, который хранит уже частные квесты - то есть то что уже ближе к персонализации игрока, банально какой-то квест задание в игре например прокликать 3 раза.
По кнопке Влево мы наполняем наши 2 вектора числами. По кнопке Вправо переносим из конца первого вектора в конец второго. По кнопке Вниз отменяем последнее перемещение числа.
Объясните плиз, что вы делаете? И зачем здесь нужна команда?
Очень прошу пояснительную бригаду, для моего случая непонимания:)
В этой статье есть некая проблема в том, что ты сразу описываешь полученные результаты. Самого квеста, который ты прошел, здесь нет - он есть только в твоей голове. Ты говоришь - пришел к некоторым вопросам про использование C++, и где эти вопросы? Есть только ответы.
В основном, в таких статьях интересен набор решений, которые ты делал, когда кодил. Почему результат, которого ты достиг, интересный и уникальный. Попробуй в следующий раз написать более лучше)
Например, для олдов, можно напомнить, что SDL теперь работает на лицензии zlib, а не GPL как раньше. По сравнению с MIT, zlib понятней, легче читается, и позволяет изменять способ информирования о ее наличии: "This notice may not be removed or altered from any source distribution." Это значит, его действительно можно использовать в чем-то, что дальше ты будешь продавать. Без этого весь этот код можно было бы сразу выкинуть в помойку и писать на чем-то совершенно другом.
спасибо учту, простите квест действительно есть. просто я слаб в простоту такого он даже подготовлен и по рандому я сам честно его даже 1 раз проделал)
ValidRules - общие правила что где находится или что как двигается или откуда берется
ValidQuests - конкретика достижения
я начинал с хаотичной разработки без паттернов, пробовал 3Д, сделал пару приложений для себя, на некой итерации второго приложения 2Д, пошли сдвиги что я не на правильном пути. Сначала был прототип который я написал сразу за 1 час, далее просто группировка, и потом осознание что для функционала конкретно уже нужны паттерны действительно (тоесть в хаотичной разработке нет желания переизобретать паттерны)
Можно не только про лицензию, в SDL3 теперь добавилась куча новых фич.
Например, можно определять функции обратного вызова (main callbacks) вместо main() (см. обзор из документации), которые возвращают/принимают значение SDL_AppResult:
SDL_AppInit() - инициализирует приложение в начале
SDL_AppIterate() - главная функция (выполняется на каждой итерации)
SDL_AppEvent() - работает в поступающими в приложение событиями
SDL_AppQuit() - завершает работу
Т.е. на самом высоком уровне можно совершенно по-другому описать программу без использования стандартной точки входа.
Еще появился переносимый GPU API, т.е. может и в 3D c аппаратным ускорением.
Даже отрисовка текста теперь из коробки есть, правда, только для дебага.
Я так и не понял, что делает этот паттерн, чего нельзя было сделать без него?
Первый Pattern, первый квест