• Почему пишет неопределенный тип?

    maaGames
    @maaGames
    Погроммирую программы
    Судя по вот этому: "EventArgs.h", в вопросе показан код из срр файла. А в другом срр файле происходит создание объектов и там включен только "EventArgs.h" с forward declaration этих классов. Собственно, об этих классах там известно только то, что они есть и можно только указатель на них создать и всё. Определение класса олжно быть в хэдере и этот хедер надо включить во все файлы, которые этот класс используют.
    И сделай виртуальный деструктор. Но это уже следующая ошибка, про которую спросишь.
    Ответ написан
  • Тонкости Компиляторов. Почему в классах с++ не требуется объявление функции до вызова?

    maaGames
    @maaGames
    Погроммирую программы
    Думаю, основная разница в том, что методы класса гарантированно находятся в том же самом файле в пределах скобочек. А вот просто функции могут быть где угодно в других файлах, которые ещё не обработаны.
    Ответ написан
    Комментировать
  • Как правильно инициализировать константы в namespace в *.h *.cpp?

    maaGames
    @maaGames
    Погроммирую программы
    Почитай про ключевое слово extern при объявлении переменных, послеэтого всё получится.
    Ответ написан
  • Как использовать класс объявленный в другом файле?

    maaGames
    @maaGames
    Погроммирую программы
    Сразу скажу, что это плохой код и делать так не надо.
    Однако, отвечая на вопрос: весь этот код написан в .h файле. Нужно сделать .cpp файл, в котором будет сздана переменная logg. Сейчас объявлено, что переменная есть, но самого объекта нет.
    Ответ написан
    4 комментария
  • Является ли безопасным отнять от указателя 1 и итерироваться по массиву [1,N], а не [0, N-1]?

    maaGames
    @maaGames
    Погроммирую программы
    Работай с массивом не напрямую, а через функцию. Ещё лучше, убери массив в класс.
    double Get(double * arr, int index)
    {
          assert( index > 0 );
          return arr[index - 1];
    }


    Или, ещё проще. Создавай массив на 1 элемент больше и игнорируй наличие нулевого элемента.
    Ответ написан
    6 комментариев
  • Как обойти все исполнения программы?

    maaGames
    @maaGames
    Погроммирую программы
    Мьютексы, семафоры, критические секции. То есть добавь объекты синхронизации, чтобы гарантировать, что объекты изменяются упорядоченно и только одним потоком в единицу времени.
    Ответ написан
    4 комментария
  • Как растянуть рабочую поверхность во весь экран интерактивного дисплея?

    maaGames
    @maaGames
    Погроммирую программы
    У меня обатная проблема, монитор 1440р, а планшет 1080р. Если не использовать "расширение работчего стола", то разрешение уменьшается до меньшего из двух.
    Есть обходной манёвр при помощи настройки видео-драйвера (для nvidia, про других производителей не уверен). Нужно для экрана с меньшим разрешением создать собственное разрешение, равное разрешению второго экрана. Это разрешение будет больше физически возможного для экрана. После этого можно включить дублировние экрана и на обоих будет одна и та же картинка, но на меньшем экране картинка будет уменьшена с потерей качества (слегка размытая). В моём случае размытость получается на планшете, но это становится проблемой только при рисовании однопиксельных линий, в целом для рисования это не сильно мешает. И всегда можно посмотреть на основной монитор для пиксель-пёрфект.
    В вашем случае мыльцо будет на экране ноутбука, поэтому повышеное разрешение лучше включать только когда рисуете на планшете, чтобы в остальное время картинка не была замыленной.

    вот тут в панели управления nvidia это делается. Для других производителей не знаю как. Есть программные решения, клонирующие и масштабирующие картинку, но я ими не пользовался.
    64b221d56db39915801733.png
    Ответ написан
    Комментировать
  • Какие есть подходы к реализации подключения различных модулей для приложения?

    maaGames
    @maaGames
    Погроммирую программы
    1. Реши вопрос о том, как будет выполняться оплата и как "программа" узнает о том, была ли оплата. Иначе один человек покупает модули, вкладывает на торренты и всё, второй человек уже не покупает :) Скорее всего, купив подписку на систему оплаты и проверки лицензии, ты сразу купишь систему защиты программы от взома (бюджетную денуво).
    2. Решив проблему оплаты и лицензирования ты автоматически решаешь вопрос разделения модулей. Не важно, будут это отдельные dll, скачиваемые по запросу или всё в одном ехе собрано - это уже будет разграничиваться системой защиты кода программы. А как конкретн осделать - как тебе будет удобнее.
    То есть бесполезно просто выносить фукнционал в dll и посылать её по почте сделавшим донат в донэйшеналертс. Нужно комплексное решение. Есть бесплатные варианты, от хакеров-первокурсников могут защитить.

    Если речь про мобилки, то есть стандартные средства конкретной платформы для "внутриигровых платежей" и средства проверки того, что было оплачено, а что нет.
    Ответ написан
    Комментировать
  • Почему arw формат, сохраненный в psd, начинает весить в 5-7 раз больше?

    maaGames
    @maaGames
    Погроммирую программы
    Склей слои, удали фрагменты, которые за границей кадра. Сохрани в jpg :)

    6000*4000 пикселов, 16 битный цвет, 2 слоя. Вполне нормальный размер у файла.
    Ответ написан
  • Почему вылетает исключение при удалении объекта?

    maaGames
    @maaGames
    Погроммирую программы
    Нет виртуального деструктора у IContainer, а удалять пытаешься полиморфно.
    Ответ написан
    Комментировать
  • Как можно реализовать движение объекта в 2d пространстве к еде с помощью нейросети?

    maaGames
    @maaGames
    Погроммирую программы
    Вознаграждение за "еду" не забыл добавить? Ближайшую еду не надо передавать, достаточно координаты любой еды или "всех едов". На самом деле, нужно всё игровое поле передавать или регион, в котором находится объект. Ведь движение будет не в пустом пространстве, в итоге надо будет обходить препятствия и "врагов".
    Штраф за каждое передвижение, большое вознаграждение за кушание еды. И учить, учить, учить... Нейросеть сама научится выбирать ближайшую цель и двигаться к ней.
    Например задать "здоровье" объекта равное числу клеток на игровом поле. За каждый шаг здоровье снижается на 1 и объект умирает, когда здоровье равно нулю. Такой подход гарантирует, что объект не сможет топтаться на одном месте и ходить кругами, а выживут только те, кто или будет бегать по всему полю и случайно наткнётся на еду и те, кто будет целенаправленно бежать к еде. В процессе отбора последние, скорее всего, останутся последними выжившими.
    Ну и множитель корректировки не дожен быть слишком большим или слишком маленьким, количество слоёв должно быть не слишком маленьким и не слишком большим, топология сети должна быть... какая-то.
    Ответ написан
    Комментировать
  • Можно ли оплатить кабинет разработчика чужой картой?

    maaGames
    @maaGames
    Погроммирую программы
    У меня счёт для выплат подтверждался "пин кодом", который присылался бумажным письмом на указанный адрес. Очевидно, сейчас это так же будет невозможно для жителей отменённой страны.
    Ответ написан
  • Как дамп данных windows 7 перенести на windows 10?

    maaGames
    @maaGames
    Погроммирую программы
    клонировать диск со старого ПК на новый (при этом будет в елости стары йдиск, если что-то пойдёт не так и можно будет повторные попытки делать, без риска потери данны).
    После клонирования диска сделать обновление системы до Вин10.
    Ответ написан
    Комментировать
  • Сайт с 'www' не работает, а без открывается на ура, почему?

    maaGames
    @maaGames
    Погроммирую программы
    Вообще не знаток проблемы и не уверен, что правильно понял вопрос, но для себя подобную проблему решил через файл .htaccess.
    Так же сделал редирект с http на https.

    Редирект с www на без www
    
    RewriteCond %{HTTP_HOST} ^www\.site\.ru$ [NC]
    RewriteRule ^(.*)$ http://site.ru/$1 [R=301,L]
    
    Редирект без www на www
    
    RewriteCond %{HTTP_HOST} ^site.ru$ [NC]
    RewriteRule ^(.*)$ http://www.site.ru/$1 [R=301,L]
    Ответ написан
    Комментировать
  • Как можно усложнить программу?

    maaGames
    @maaGames
    Погроммирую программы
    Ну элементарно же!
    Везде, во всех циклах и аргументах фукнций, вместо константных ссылок передавай по значению и будет тебе копирование массивов.
    Везде вместо [] используй at() - в нём есть проверка границ, очень чутка медленнее работает, чем [].
    " if (!visited[w])" убери проверку и всегда путь ищи, это прям радикально замедлит.
    Там же не path модифицируй, а на каждой итерации создавай копию и, если pop_back не требуется, то копируй временный путь в path.
    Ответ написан
    Комментировать
  • Какой метод сжатия текстур подходит для моего случая?

    maaGames
    @maaGames
    Погроммирую программы
    Если нужно уменьшить размер инсталлятора, то просто оптимизируй png файлы (optipng, pngout и прочие подобные програмки есть, включая онлайн версии). Если нужно именно распакованный размер текстур во время игры, то какой-нибудь из нативных для платфомры форматов испоьзуй. Как правило они делают картинку хуже, че мона была в png.
    Сомневаюсь, что у тебя гигабайты BMP спрайтов, поэтому не заморачивайся и сохраняй в png.
    Ответ написан
    Комментировать
  • Как сохранить и получить потом шаблонный тип, переданный методу класса?

    maaGames
    @maaGames
    Погроммирую программы
    template<typename T>
    struct Base
    {
       using USED_TYPE = T;
    
        T value;
    };


    а дальше всё очевидно.
    Ответ написан
  • Как освободить место на компьютере?

    maaGames
    @maaGames
    Погроммирую программы
    1. Отключить режим сна (гибернацию). Это освободит несколько гигабайт. Лучше погугли, но что-то типа: "powercfg -h off" в консоли под админом выполнить;
    2. Отключить Восстановление системы и удалить снимки имеющиеся;
    3. Установи Wise Disk Cleaner, выполни сперва стандартные очистки, потом выполни глубокую, которая ищет всякие логи и прочие временные файлы, оставшиеся в странных местах. Но тут надо быть аккуратным, при удалении сотен мегабайт всяких coockies браузеров удалятся авторизации на сайтах и придётся заново логиниться;
    4. Через установку-удаление компонентов удали ненужные компоненты виндоуса, если какой-то мусор есть. Типа XBox и прочей чужи;
    5. Ограничь размер файла подкачки в 2-4 гигабайта. Смысла от большого файла подкачки нет, вряд ли ты что-то серьёзное запустить сможешь на такой машинке... Может и 1 гигабайт поставить;
    6. Подкопи пару тысяч на новый SSD. Компьютер итак живой труп, а ты его додушиваешь SD-картой. Самый дешёвый SSD с алиэкспресса на 128 гигов сильно оживит ПК.
    Ответ написан
    Комментировать
  • Почему не видит data chunk?

    maaGames
    @maaGames
    Погроммирую программы
    Порядок байт совпадат с ожидаемым?
    "data" = 0x61746164
    может быть
    "data" = 0x64617461
    если не в том порядке байты считываешь
    Ответ написан
    8 комментариев
  • Как изменить определённую строку и записать новое значение в txt?

    maaGames
    @maaGames
    Погроммирую программы
    Считать весь файл в массив (если в файле сохранён массив), заменить третий элемент массива, сохранить весь массив в файл. То есть сделать полную перезапись файла.
    Ответ написан
    Комментировать