Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 5.00/1: Рейтинг темы: голосов - 1, средняя оценка - 5.00
Just Do It!
 Аватар для XLAT
4219 / 2680 / 656
Регистрация: 23.09.2014
Сообщений: 9,235
Записей в блоге: 3

Совместное создание игры

08.01.2025, 12:45. Показов 45683. Ответов 942
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
 Комментарий администратора 
Обсуждение вынесено из темы Ищу человека для совместного изучения программирования


Цитата Сообщение от Royal_X Посмотреть сообщение
Вот на моем неигровом ноуте последний UE без проблем запускается и не тормозит даже.
ок.
если ТС готов варганить со мной сапера, то я сделаю ещё одну попытку его(пожалуй 4 версию) установить и испытать.

собсно что нужно: формально отображать некие графические модели на экране в нужном его месте нужного масштаба,
для теста сойдут спрайты - а потом можно и анимированные модели голых девочек,
на усмотрение геймдиза))

и больше ничаво.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
08.01.2025, 12:45
Ответы с готовыми решениями:

Для чего создан язык С++?
Для чего создан язык С++????

создан массив
создан массив автовладельцев, для каждого известны Ф.И.О., номер, адрес...,Выяснить есть ли автовладельцы у которых имеются больше 1-ой...

Теория игр, массивы
Есть задание (прикрепил его в виде файла к сообщению). Есть решение для 12-ого варианта на BORLANDC, у меня 2-ой. Я изменил в начале...

942
Just Do It!
 Аватар для XLAT
4219 / 2680 / 656
Регистрация: 23.09.2014
Сообщений: 9,235
Записей в блоге: 3
19.01.2025, 15:34  [ТС]
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от CoderHuligan Посмотреть сообщение
Нет бы SDL взять или directx с openglом
для 2D графона SFML эталон.

0.
ясный, как на ладони API - не нужно учить - сразу пишешь код.

1.
Винда, Мак, Линукс - ничо не нужно переписывать.

2.
истинно крестовый.

чтобы wxWidgets был истинным, нужно было так: wx::Widgets (про остальное молчу),
а так "Штирлиц был близок к провалу" - сразу видно что библу писали сишники.


3.
хотите 50 нац-языков - организуйте свичер на файлики с ними(перевод от основного, ясень, русского).

4.
Цитата Сообщение от Royal_X Посмотреть сообщение
чем они помогут с изменением размеров окна
в целом нет, но нужно бороться с размытием при скейлинге или зуме шрифтов.
например так, путем переключения размера шрифтов у текста.
но(второй вариант), можно, слой с UI сделать константно масштабируемым, т.е. масштабируется только графон.

5.
и главное, есть анимация любая в том числе шейдерная.

тут анимация на гифке:
https://www.cyberforum.ru/post16269306.html
1
 Аватар для CoderHuligan
1753 / 1019 / 257
Регистрация: 30.06.2015
Сообщений: 5,132
Записей в блоге: 56
19.01.2025, 16:00
Цитата Сообщение от Royal_X Посмотреть сообщение
самое главное, чем они помогут с изменением размеров окна?
Это - да.
Цитата Сообщение от XLAT Посмотреть сообщение
для 2D графона SFML эталон.
В курсе. Давно она у меня есть. Меня она интересовала с точки зрения привязки к С, так как там есть соответствующий байдинг. А с SDL опыт небольшой есть. Для меня она - эталон (под С). Тем более изучал её исходники и могу с уверенностью сказать: сделано на совесть. А SFML согласен, для плюсов это маст хэв.

Добавлено через 8 минут
Честно говоря очень хочется сделать достаточно сложную игру на sdl или sfml. Со сложной логикой.

Добавлено через 4 минуты
Цитата Сообщение от XLAT Посмотреть сообщение
хотите 50 нац-языков - организуйте свичер на файлики
Если я захочу этого, то выход найду. Что-то типа базы данных. Вообще тут много вариантов.

Добавлено через 1 минуту
Всё,иду писать код.))
0
Эксперт функциональных языков программированияЭксперт С++
 Аватар для Royal_X
6289 / 3013 / 1051
Регистрация: 01.06.2021
Сообщений: 11,402
19.01.2025, 16:14
XLAT, CoderHuligan, вот на wxWidgets без проблем можно реализовать то же самое, что и на игровых движках, когда допустим игра имеет пропорции 3х4 и нужно, чтобы она сохранила эти пропорции. А именно, дать пользователю изменить размер окна как угодно, а потом максимально заполнить клиентскую часть окна игрой, а остальные области залить каким-то цветом, если окно не имеет пропорции 3х4.

Но вот мне интересно, как сделать так, чтобы пользователь менял сам размер окна с сохранением заданной пропорции?
У меня вот получилось это сделать (результат в архиве), но работает только если пользователь тянет сбоку или с угла, но не снизу.
Вложения
Тип файла: 7z AspectTest.7z (1.72 Мб, 10 просмотров)
0
 Аватар для CoderHuligan
1753 / 1019 / 257
Регистрация: 30.06.2015
Сообщений: 5,132
Записей в блоге: 56
19.01.2025, 16:45
Цитата Сообщение от Royal_X Посмотреть сообщение
как сделать так, чтобы пользователь менял сам размер окна с сохранением заданной пропорции
На win api это тривиально. Отлавливаем сообщение WM_SIZE, и рассчитываем размеры окна в зависимости от текущего размера. Конечно всё надо ручками делать. А потом функцией MoveWindow изменяем размер.
0
Эксперт функциональных языков программированияЭксперт С++
 Аватар для Royal_X
6289 / 3013 / 1051
Регистрация: 01.06.2021
Сообщений: 11,402
19.01.2025, 16:51
Цитата Сообщение от CoderHuligan Посмотреть сообщение
На win api это тривиально. Отлавливаем сообщение WM_SIZE
на wxWidgets аналогично
Цитата Сообщение от CoderHuligan Посмотреть сообщение
рассчитываем размеры окна в зависимости от текущего размера. Конечно всё надо ручками делать.
ну рассчитал, а как потом определить, ориентироваться на ширину или высоту? Имею в виду, я так и делаю ручками. Получаю текущий размер - т.е. размер после события изменения окна. И вот прописываю новую высоту, с учетом текущей ширины и пропорции. Устанавливаю новый размер. И вот так работает, если юзер меняет размер, таща окно с боку или с угла. Но вот когда юзер тянет с низу, т.е. когда меняется высота, то данный код есесена не работает. Могу сделать и наоборот. Будет работать, когда тянем с низу или с угла, но не с боку.
Проблема в том, что мне одно событие не устраивает. Нужно точно знать, каким образом юзер тянет окно.
0
 Аватар для CoderHuligan
1753 / 1019 / 257
Регистрация: 30.06.2015
Сообщений: 5,132
Записей в блоге: 56
19.01.2025, 17:28
Цитата Сообщение от Royal_X Посмотреть сообщение
ужно точно знать, каким образом юзер тянет окно.
WM_SIZING. В wParam проверить константу WMSZ_BOTTOM. Это если юзер тянет за низ.
0
Эксперт функциональных языков программированияЭксперт С++
 Аватар для Royal_X
6289 / 3013 / 1051
Регистрация: 01.06.2021
Сообщений: 11,402
19.01.2025, 17:35
CoderHuligan, это на винапи, но на wxWidgets я не знаю как, чтобы не терять кроссплатформенность.
0
Эксперт функциональных языков программированияЭксперт С++
 Аватар для Royal_X
6289 / 3013 / 1051
Регистрация: 01.06.2021
Сообщений: 11,402
19.01.2025, 17:42
XLAT, короче, поставил я эталон SFML. Настроил статическую сборку, как я всегда люблю делать.

Получил хороший сглаженный круг размером 253 КБ, что очень неплохо.



Использовал код из их сайта, добавил от себя только сглаживание и количество точек для круга увеличил.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include <SFML/Graphics.hpp>
 
int main()
{
    sf::ContextSettings settings;
    settings.antiAliasingLevel = 1 << 4;
    sf::RenderWindow window(sf::VideoMode({ 500, 500 }), "SFML works!", sf::Style::Default, sf::State::Windowed, settings);
    sf::CircleShape shape(200.f, 100);
    shape.setPosition({ 50, 50 });
    shape.setFillColor(sf::Color::Green);
 
    while (window.isOpen())
    {
        while (const std::optional event = window.pollEvent())
        {
            if (event->is<sf::Event::Closed>())
                window.close();
        }
 
        window.clear();
        window.draw(shape);
        window.display();
    }
}
XLAT, т.е. по сути, тут используется OpenGL. Я так понял по настройкам контекста, где можно выставить мажорную и минорную версию OpenGL и которая по умолчанию 2.0
0
 Аватар для CoderHuligan
1753 / 1019 / 257
Регистрация: 30.06.2015
Сообщений: 5,132
Записей в блоге: 56
19.01.2025, 17:43
Цитата Сообщение от Royal_X Посмотреть сообщение
на wxWidgets
Вот так бывает с этим фреймворками. Причем со всеми.. Чуть что посложнее надо сделать и все, амба..
0
Эксперт функциональных языков программированияЭксперт С++
 Аватар для Royal_X
6289 / 3013 / 1051
Регистрация: 01.06.2021
Сообщений: 11,402
19.01.2025, 17:50
CoderHuligan, а SFML умеет или там тоже печалька?

По ходу даже в Qt этого нет (я на переполнениистека нашел тему, где чуваку предлагали вызывать нативный код). Конечно, во всех фреймворках есть возможность соблюдения пропорции для дочерних окон через сайзеры. Но для главного окна нет решения.

Добавлено через 3 минуты
Цитата Сообщение от CoderHuligan Посмотреть сообщение
Вот так бывает с этим фреймворками. Причем со всеми.
ну значит мы правильно сделали, что выбрали винапи и gdi+. Пусть XLAT помучается с фреймворками.
1
Just Do It!
 Аватар для XLAT
4219 / 2680 / 656
Регистрация: 23.09.2014
Сообщений: 9,235
Записей в блоге: 3
19.01.2025, 17:57  [ТС]
Цитата Сообщение от Royal_X Посмотреть сообщение
Нужно точно знать, каким образом юзер тянет окно.
вот индикаторы внутри обработчика:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
///-----------------------------------|
/// Изменение размера окна.           |
///-----------------------------------:
void Text::OnSize(wxSizeEvent& e_onsize)
{
    int szx = e_onsize.GetSize().GetWidth (),
        szy = e_onsize.GetSize().GetHeight();
 
    static float K = (float)szx / szy;
 
    static int SZX = szx;
    static int SZY = szy;
 
    if(SZX != szx)
    {
        szy = (float)szx / K;
    }
    else
    if(SZY != szy)
    {
        szx = (float)szy * K;
    }
 
    SZX = szx;
    SZY = szy;
 
    this->SetSize(szx, szy);
 
    ///... обновите рамку, используя новый размер ...
 
    this->Refresh();
    this->Update ();
}
+ история с морганием

идентификатор для события такой e_onsize для лога)))
Вложения
Тип файла: rar wx-01.rar (5.93 Мб, 5 просмотров)
0
Эксперт функциональных языков программированияЭксперт С++
 Аватар для Royal_X
6289 / 3013 / 1051
Регистрация: 01.06.2021
Сообщений: 11,402
19.01.2025, 18:12
XLAT, выложи exe, чтобы мы посмотрели (в архиве у твоего exe не все зависимости, мне лень самому их искать). Твой проект у меня не компилится.

Добавлено через 3 минуты
Цитата Сообщение от Royal_X Посмотреть сообщение
в архиве у твоего exe не все зависимости
когда юзаешь компилятор g++, то нужны еще
libgcc_s_seh-1.dll
libstdc++-6.dll
libwinpthread-1.dll

Или -static юзай
0
Just Do It!
 Аватар для XLAT
4219 / 2680 / 656
Регистрация: 23.09.2014
Сообщений: 9,235
Записей в блоге: 3
19.01.2025, 18:13  [ТС]
Цитата Сообщение от Royal_X Посмотреть сообщение
выложи exe
прокол, я сначала кладу, потому проверяю))

млин, вреде же работало там всё с двумя длл...

...тут без кода...
Вложения
Тип файла: rar Сапёр[wxWidgets]-Win64.rar (6.06 Мб, 2 просмотров)
0
Just Do It!
 Аватар для XLAT
4219 / 2680 / 656
Регистрация: 23.09.2014
Сообщений: 9,235
Записей в блоге: 3
19.01.2025, 18:16  [ТС]
Цитата Сообщение от Royal_X Посмотреть сообщение
Твой проект у меня не компилится.
ну, понятно же, библа у меня лежит по другому пути ...
0
Эксперт функциональных языков программированияЭксперт С++
 Аватар для Royal_X
6289 / 3013 / 1051
Регистрация: 01.06.2021
Сообщений: 11,402
19.01.2025, 18:17
Цитата Сообщение от XLAT Посмотреть сообщение
...тут без кода...
1. экран моргает
2. High DPI не реализовано
3. Ресайз не реализован
4. Непонятно, как поставить флаг
5. Как начать новую игру
0
Эксперт функциональных языков программированияЭксперт С++
 Аватар для Royal_X
6289 / 3013 / 1051
Регистрация: 01.06.2021
Сообщений: 11,402
19.01.2025, 18:22
Цитата Сообщение от XLAT Посмотреть сообщение
ну, понятно же, библа у меня лежит по другому пути ...
это потому что, ты настроил проект через ж

Надо было создать глобальную переменную wx и там указать пути к либе


Тогда бы в файлах настроек проекта C::B были бы только относительные пути (если компилятор тоже указан глобально в ide).

А при создании проекта
1
Just Do It!
 Аватар для XLAT
4219 / 2680 / 656
Регистрация: 23.09.2014
Сообщений: 9,235
Записей в блоге: 3
19.01.2025, 18:28  [ТС]
Цитата Сообщение от Royal_X Посмотреть сообщение
Надо было
обязательно проверю, когда скинешь сюда свой проект...

Цитата Сообщение от Royal_X Посмотреть сообщение
Непонятно, как поставить флаг
это не игра - это тест моргания.
0
Эксперт функциональных языков программированияЭксперт С++
 Аватар для Royal_X
6289 / 3013 / 1051
Регистрация: 01.06.2021
Сообщений: 11,402
19.01.2025, 18:31
Цитата Сообщение от XLAT Посмотреть сообщение
обязательно проверю, когда скинешь сюда свой проект...
моя игра была сделана еще 8 дней назад Ищу человека для совместного изучения программирования

там есть и кнопка для новой игры
есть флажки
есть и поддержка High DPI
дерганий нет

только нет ресайза, но там он и не нужен
0
Just Do It!
 Аватар для XLAT
4219 / 2680 / 656
Регистрация: 23.09.2014
Сообщений: 9,235
Записей в блоге: 3
19.01.2025, 18:33  [ТС]
если баг с морганием не будет разрешен, то нафик тогда ресазинг?!

Цитата Сообщение от Royal_X Посмотреть сообщение
моя игра была сделана еще 8 дней назад
не по адресу - я медали не раздаю.

Royal_X,
я не слепой - я прекрасно вижу, что ты ЧСВ тут качаешь))
0
Эксперт функциональных языков программированияЭксперт С++
 Аватар для Royal_X
6289 / 3013 / 1051
Регистрация: 01.06.2021
Сообщений: 11,402
19.01.2025, 18:39
Цитата Сообщение от XLAT Посмотреть сообщение
что ты ЧСВ тут качаешь))
неа, я просто прикалываюсь)))

Добавлено через 1 минуту
XLAT, попробуй рисовать на контроле wxStaticBitmap

Добавлено через 33 секунды
XLAT, и лучше создай новый проект C::B. Используй wxFormBuilder - это портабл, даже устанавливать не нужно https://github.com/wxFormBuild... r/releases

Этот дизайнер позволяет создать за минуту очень красивый гуй, код генерируется автоматически.

Добавлено через 4 минуты
XLAT, если хочешь, могу сам создать проект, а ты продолжишь.
Только нужно будет тебе скачать wxFormBuilder wxFormBuilder-4.2.1-ucrt-x86_64.zip и настроить переменную wx в ide
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
19.01.2025, 18:39

Решение матричных игр. Есть у кого такая программа написанная уже...
Требуется программа по решению матричных игр... С выбором размера матрицы и выдачей решения... Может кто смогёт такую сбатцать?

Запуск приложений(старых игр) в оконном режиме
День добрый, подскажите, хотелось бы реализовать свое желание запуска старых игр windo`вых(типа StarCraft) в оконном режиме, с чего начать,...

Алгоритм календаря игр (например в футболе)
необходимо составить календарь футбольных матчей, допустим есть 6 команд char *teams = {&quot;TEAM A&quot;,&quot;TEAM B&quot;,&quot;TEAM...

Движок для игр
Всем привет!!!, хотел узнать возможно ли создать движок на C++ чтобы экспортировать модели из 3ds max а после в самом движке можно было...

Выбор IDE для создания 2D игр
Здравствуйте. Задача сделать пака 2ух – мерные драчки загружая в проект анимацию-как удар(ы) и реакция на удар...(лучше всего секвенцию...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
380
Закрытая тема Создать тему
Новые блоги и статьи
Как замкнутый ядерный цикл решит проблему недостатки фосфора? Био миграция фосфора со дна океана
anaschu 26.06.2026
Биологический лифт: Концепция подъема фосфора со дна океана с помощью ЗЯТЦ Предлагаю на обсуждение альтернативу тяжелому промышленному бурению океанического дна. Вместо сложной инженерии мы можем. . .
сукцессия 5
anaschu 26.06.2026
ПЛАН РАЗРАБОТКИ математической модели сукцессии микоризных систем Переход AM → EcM (Endo + ErM) · Шумилов А. С. · ИФХиБПП РАН · Пущино · 2026 . . .
сукцессия 4
anaschu 25.06.2026
Более детализированный план разработки План доработки модели динамики микоризных симбиозов (EcM с гистерезисом) Цель: Реализовать логику переключения между эрикоидным (ErM) и эктомикоризным. . .
сукцессия 3
anaschu 25.06.2026
Примерный план работ по модели
сукцессия 2
anaschu 25.06.2026
параметризировочная калибровочная таблица будущей модели
Многофункциональное здание: как одно здание порождает конфликты требований, которые никто не планировал (мат мет мод 29)
anaschu 23.06.2026
Многофункциональное здание: как одно здание порождает конфликты требований, которые никто не планировал Материалы для обсуждения с МГСУ · 2026 Рисунки внутри приложенного ворд файла. Что за. . .
28. Конкретное развертывание плана номер 1 из поста номер 27
anaschu 22.06.2026
Можно ли из модели получить конкретные строительные требования? Честно — напрямую из текущей модели такие ответы не получить. Но цепочка логики есть, и она не такая длинная. Где разрыв . . .
27. Планы на разработку функциональных требований к строительству внутри модели пищеблока (или не только его?)
anaschu 22.06.2026
Что уже реализовано и даёт конфликты «бесплатно» Самый простой конфликт уже работает — конфликт за ресурс-работника. Заданий больше, чем доступных поваров → очередь в queue1. Это прямое отражение. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru