Задать вопрос
  • Как записать, а после прочитать из бинарного файла структуру?

    maaGames
    @maaGames
    Погроммирую программы
    ПЕРЕМЕННОЙ структуры не бывает, размер всех типов данных фиксируется в момент компиляции. Память нужно выделять отдельно для каждого поля структуры и сохранять/загружать придётся каждое поле по отдельности. Т.е. в файл пишешь "размер fileName", "байты fileName", "размер fileContent", "байты fileContent". Сразу замечу, что unsigned int для размера файла ограничивает размер файла до 4 гигабайт, лучше сразу int64_t использовать (не знаю, как в Си его принято обзывать).
    На чтение/запись нужно открывать в бинарном виде (для данной задачи), а не в текстовом.
    Ответ написан
    Комментировать
  • Можно ли в игре создать объект со случайными и зашифрованными координатами?

    maaGames
    @maaGames
    Погроммирую программы
    Про удалённый сервер уже написали. Для локальной работы придётся испоьзовать какую-нибудь систему защиты, типа любимого игроками StarForce :)
    Т.е. данных либо не будет на ПК игрока, либо данные находятся внутри шифрованной виртуальной машины, куда мамкины хакеры не полезут.
    Ответ написан
  • Какое хранилище выбрать файлового менеджера?

    maaGames
    @maaGames
    Погроммирую программы
    Купите NAS и не *** себе мозг ценами и скоростью закачки.
    Ответ написан
    Комментировать
  • Почему не любят c++ builder?

    maaGames
    @maaGames
    Погроммирую программы
    Потому что он по идеологии и принципу разработки больше Delphi/Pascal, чем C++... Потом будет очень сложно программировать в "нормальных" компиляторах. Не знаю, как сейчас, но 10-15 лет назад у Билдера были большие проблемы с соответствием стандарту. Возможно, моё предвзятое мнение морально устарело и нынешний Борланд очень даже торт, но проверять не буду.
    Ответ написан
    Комментировать
  • Почему в cout ограничено кол-во вводимых символов?

    maaGames
    @maaGames
    Погроммирую программы
    std::getline(std::cin, a1);
    пробельные символы - разделитель ввода (хоть с клавиатуры, хоть из файла, хоть откуда)
    Ответ написан
    6 комментариев
  • Как правильно использовать anonymous namespace?

    maaGames
    @maaGames
    Погроммирую программы
    Такое делают при помощи PImpl, если есть реальная необходимость скрыть детали реализации. Решает проблему "incomplete type".
    Ответ написан
    2 комментария
  • Каким методом можно сопоставить координаты нажатия сенсора и кнопок в интерфейсе ПО?

    maaGames
    @maaGames
    Погроммирую программы
    Резистивный экран + толстый палец...
    Из личног оопыта могу лишь провести аналогию с планшетами/смартфонами. В "нумпаде" терминала кнопки стоят рядом и могут быть ложные нажатия. Я бы уменьшил "чувствительную" площадь кнопки, например, только в половину реального размера (это можно делать на лету, без правки макета). Т.е. чтобы нажимать нужно было прям на центр кнопки, а не хоть в какое её место тынцкать. В этом случае, при ложном срабатывании, палец попадёт между кнопок и ничего не напишется. Всё-таки это лучше, чем будет введена неправильная цифра.
    В почтовом отделении такой дешёвый резистивный экран стоял, что приходилось костяшкой пальца давить для срабатывания. (может защитное стекло не убрали...)
    Ответ написан
    4 комментария
  • Какую нужно иметь специальность, чтобы уехать работать Геймдевом за границу?

    maaGames
    @maaGames
    Погроммирую программы
    1. Учи английский. Очень-очень усердн оучи английский, чтобы прям разговорный без словаря.
    2. Учиться желательно не в России. Красный диплом Российского ВУЗа ничего не значит за границей, придётся подтверждать свою квалификацию.
    3. Заочные курсы или обучение в условном "оксфорде" будет громным плюсом. Т.е. тебе нужна любая бумажка об образовании полученная от признанного в мире университета или от какого-то учебного заведения в той стране, куда ты хочешь уехать.
    Без котируемого документа об образовании найти работу будет сложно, кроме случаев, если ты ещё в России настолько себя зарекомендовал, что тебя хотят все перекупить и к себе заманить (в геймдеве такого не будет, уверен на 99%).
    И последнее. Через 5-6 лет сложно предсказать, что будет в сфере геймдева. Т.е. сложно сказать, что конкретно нужно начинать учить сейчас, чтобы через 5 лет эти знания были нужны ещё на протяжении хотя бы пяти лет. Всё очень быстро меняется, каждые несколько лет появляются новые технологии, оборудование и т.д. и т.п.

    Это я не запугиваю и не отговариваю. Учитсья обязательно нужно, когда станешь хорошим специалистом, то многие двери могут открыться.
    Ответ написан
    Комментировать
  • Как добавить в видео внешнюю аудиодорожку?

    maaGames
    @maaGames
    Погроммирую программы
    Для удаления/добавления дорожек/субтитров и прочего, мне по душе MKVToolNix. В первую очередь, потому что GUI, во вторую - потмоу что просто склеивает, без перекодирования.
    Ответ написан
    1 комментарий
  • Html, как постепенно загружать фотографию?

    maaGames
    @maaGames
    Погроммирую программы
    progressive jpeg
    Ответ написан
    Комментировать
  • Как отделить светящийся объект от фона?

    maaGames
    @maaGames
    Погроммирую программы
    1) Ctrl+Alt+Shift + клик в любом из RGB каналов. Если есть Alpha-канал, то лучше в нём. (создаётся выделение по интенсивности цвета в данном канале)
    2) Ctrl+Shift+i (обращение выделения)
    3) delete (удалить чёрное, оставить белое)

    Но, в конкретном случае, лучше эту картинку накладывать в режиме Screen.
    Ответ написан
    1 комментарий
  • Как себя направлять в обучении, почему через 4 года опыта работы я все еще плохо программирую?

    maaGames
    @maaGames
    Погроммирую программы
    Обсудите с тимлидом или руководителемдиректором, чтобы хотя бы пару часов в неделю уделять код-ревью. В идеале, каждый день по пол часа (хотя бы) просматривать коммиты друг-друга. Они будут сопротивляться, мог это трата времени, но в итоге повысится качество разработки, будете тратить меньше времени на отладку своего и, главное, чужого кода.
    Ну и из очевидного, нужно на уровне компании или конкретного проекта придерживаться формализованного стиля кодирования (именование переменных и фукнций, скобочки и прочие мелочи). Раз у вас такие сложности во взаимопонимании, то нужно попытаться причесать весь код одной гребёнкой, чтобы было меньше отторжения при чтении. И, раз код совсем не ясен, то не хватает комментариев. Про то, какими должны быть комментарии можно почитать в книжках, на которые ссылаются в ответах выше.
    Ответ написан
    Комментировать
  • Алгоритм поворота динамического массива без доп памяти?

    maaGames
    @maaGames
    Погроммирую программы
    В первую очередь рассмотреть вариант сохранения флага "транспонированная матрица" и учёт этого флага в алгоритмах. Причём, это ускорит работу ДВАЖДЫ, т.к. обход по столбцу транспонированной матрицы физически оказывается обходом по строке, что положительно сказывается на кэшировании данных матрицы.
    Ответ написан
    Комментировать
  • Как проверить наличие курсора мышки в определённой области окна(SFML)?

    maaGames
    @maaGames
    Погроммирую программы
    https://www.sfml-dev.org/documentation/2.5.1/class...

    getPosition ()
    Get the current position of the mouse in desktop coordinates.

    getPosition (const Window &relativeTo)
    Get the current position of the mouse in window coordinates.
    Ответ написан
    Комментировать
  • C++ OpenGL реализация физики, с чего начинать?

    maaGames
    @maaGames
    Погроммирую программы
    BSP tree или каке-то другие способы разделения пространства. Т.е. для коллизий проверяешь не каждый объект с каждым, а только те, которые потенциально могут столкнуться.
    К OpenGL никакого отношения не имеет, так что при гуглёжке можешь на OpenGL не ориентироваться.
    Ответ написан
    Комментировать
  • Какая приоритетная очередь быстрее?

    maaGames
    @maaGames
    Погроммирую программы
    Я бы сделал на std::deque. Вставка в начало и вытаскивание из конца у него работает махом. Сортировка и доступ чуть медленнее, чем у std::vector, но быстрее всех остальных. Придётся сортировать после каждого добавления узла (если делать лениво, то перед доступом можно сортировать, но это от нагрузки зависит, проверка перед доступом может всю пользу ленивости съесть). Еси добавления не частые, то можно и на векторе сделать, объём же ничтожный.
    Ответ написан
  • Как вывести несколько MessageBox на C++?

    maaGames
    @maaGames
    Погроммирую программы
    Напиши свой диалог и выводи егго немодально.
    Ответ написан
    Комментировать
  • Можно ли Встроить QT dialog в MFC CDialog?

    maaGames
    @maaGames Автор вопроса
    Погроммирую программы
    В общем, для диалога (или любого виджета) получаем виндовый HWND, после чего впихиваем его в имеющийся диалог методом 'HWND oldparent =SetParent( HWND child, HWND parent)'. После этого виджет становится дочерним окном стандартных виндусовских диалогов, в том числе MFC-шных (с точки зрения пользователя ведёт себя как обычный контрол диалога, т.е. визуальной разницы никакой, что и требовалось получить). Перед удалением диалога нужно для виджета вернуть родителя.

    #include <QtGui/5.12.6/QtGui/qpa/qplatformnativeinterface.h>
    
    QWindow * windowForWidget( const QWidget * widget )
    {
    	QWindow * window = widget->windowHandle();
    	if( window )
    		return window;
    
    	const QWidget * nativeParent = widget->nativeParentWidget();
    	if( nativeParent )
    		return nativeParent->windowHandle();
    
    	return nullptr;
    }
    
    HWND getHWNDForWidget( const QWidget * widget )
    {
    	QWindow * window = ::windowForWidget( widget );
    	if( window && window->handle() )
    	{
    		QPlatformNativeInterface * iface = QGuiApplication::platformNativeInterface();
    		return static_cast<HWND>(iface->nativeResourceForWindow( QByteArrayLiteral( "handle" ), window ));
    	}
    
    	return nullptr;
    }


    5e1585cb462c4267495335.png
    Ответ написан
    Комментировать
  • Как запустить android-эмулятор на машине с AMD Ryzen 3900X?

    maaGames
    @maaGames
    Погроммирую программы
    Обнаружил забавный момент. Скорее всего я у себя виртуализацию отключил как раз ради запуска РайзенМастера (или автоматом при инсталляции отключилась). Так что нужно быть внимательным.

    5e11668bce683847536789.png
    Ответ написан
    Комментировать
  • Как сгладить текстуру в смарт-объекте?

    maaGames
    @maaGames
    Погроммирую программы
    Вот тут выбери какую-нибудь интерполяцию, вместо 'nearest'. Возможно, придётся документ переоткрыть или пошевелить смарт-объект.

    5e06edd20c737403440471.jpeg
    Ответ написан
    Комментировать