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

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

08.01.2025, 12:45. Показов 52987. Ответов 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
Эксперт функциональных языков программированияЭксперт С++
 Аватар для Royal_X
6771 / 3138 / 1065
Регистрация: 01.06.2021
Сообщений: 12,189
24.01.2025, 21:22
Студворк — интернет-сервис помощи студентам
XLAT, сделай нормальную драку) Во время групповой драки люди дерутся одновременно, а не один бьет другого, а остальные в это время ждут.
Реализуй многопоточный бой. Я это к тому, что нужно сделать так, как в нормальных играх.
0
Just Do It!
 Аватар для XLAT
4223 / 2689 / 656
Регистрация: 23.09.2014
Сообщений: 9,252
Записей в блоге: 3
24.01.2025, 21:25  [ТС]
Цитата Сообщение от CoderHuligan Посмотреть сообщение
Лучше снимать не длинное видео, которое демонстрирует работу программы.
а в чем проблема то скачать и проверить геймплей самому, потратив пару минут?
0
Чугунные скороходы
 Аватар для ARRAYBOW
17 / 16 / 3
Регистрация: 25.12.2022
Сообщений: 367
24.01.2025, 21:42
Цитата Сообщение от XLAT Посмотреть сообщение
а в чем проблема то скачать и проверить геймплей самому, потратив пару минут?
ВирусТотал уже не работает против вирусов, легко обойти
0
 Аватар для CoderHuligan
1754 / 1020 / 257
Регистрация: 30.06.2015
Сообщений: 5,132
Записей в блоге: 56
25.01.2025, 09:30
Цитата Сообщение от XLAT Посмотреть сообщение
конкретно, какая у вас задача?
Например, чтобы определить свободные ячейки вокруг свободной (объект Cell), надо в цикле посылать сообщение (вызывать) тот же объект Cell, который, в свою очередь определяет уже свое окружение. Если обработаны все 8 окружающих ячеек, то объект возвращает управление вызвавшему Cell. Если в "лоб" реализовывать, то получается как бы рекурсия, чего хотелось бы избежать. Однако работать будет. Поэтому, тут нужен внешний автомат, с циклом, который сам вызывает Cell-объекты, передавая им управление, а потом передавая другим.

Добавлено через 19 минут
Цитата Сообщение от XLAT Посмотреть сообщение
а в чем проблема то скачать и проверить
Я скачал и проверил. Ну, что могу сказать: прикольно. Уровней пока нет. Сразу не понял как начать новую игру, ткнул на esc, получилось. Зачем координаты мыши выводит в левом верхнем углу? А вот что диалог в виде текста есть, это большой +!

Добавлено через 3 минуты
У меня окно растянулось чуть ли не на весь экран))

Добавлено через 14 минут
Цитата Сообщение от CoderHuligan Посмотреть сообщение
окно растянулось
Поэтому графика выглядит несколько грязновато из-за зернистости.
1
Эксперт функциональных языков программированияЭксперт С++
 Аватар для Royal_X
6771 / 3138 / 1065
Регистрация: 01.06.2021
Сообщений: 12,189
25.01.2025, 11:14
CoderHuligan, а что плохого в рекурсии? В моем сапере пустые клетки тоже открываются рекурсией. Полагаю, что у XLAT тоже рекурсия.
0
 Аватар для CoderHuligan
1754 / 1020 / 257
Регистрация: 30.06.2015
Сообщений: 5,132
Записей в блоге: 56
25.01.2025, 11:35
Цитата Сообщение от Royal_X Посмотреть сообщение
а что плохого в рекурсии?
Да ничего плохого. В данной задаче - приемлемо. Но если объекты будут взаимодействовать неограниченное время, то тут нужна поддержка хотя бы коорутин, а это в boost реализовано.
0
Эксперт функциональных языков программированияЭксперт С++
 Аватар для Royal_X
6771 / 3138 / 1065
Регистрация: 01.06.2021
Сообщений: 12,189
25.01.2025, 12:12
CoderHuligan, что означает "взаимодействовать неограниченное время"?
0
 Аватар для CoderHuligan
1754 / 1020 / 257
Регистрация: 30.06.2015
Сообщений: 5,132
Записей в блоге: 56
25.01.2025, 12:56
Цитата Сообщение от Royal_X Посмотреть сообщение
что означает "взаимодействовать неограниченное время"?
Рекурсия ограничена глубиной стека. Чтобы функции могли вызывать друг друга:
C
1
2
3
4
5
6
void fun1(void){
  fun2();
}
void fun2(void){
  fun1();
}
требуемое время, без проблем со стеком, требуется другая реализация тех же функций.

Добавлено через 16 минут
Цитата Сообщение от CoderHuligan Посмотреть сообщение
скачал и проверил
Но вы, XLAT, определенно молодец, что создали работающий прототип. Логика вся работает.
0
Эксперт функциональных языков программированияЭксперт С++
 Аватар для Royal_X
6771 / 3138 / 1065
Регистрация: 01.06.2021
Сообщений: 12,189
25.01.2025, 13:15
Цитата Сообщение от CoderHuligan Посмотреть сообщение
Рекурсия ограничена глубиной стека.
но это насколько большим должно быть поле, чтобы достичь максимальной глубины? Т.к. ты пишешь на винапи, то там же 1 МБ. Это ж какое поле нужно иметь, чтобы выйти на это ограничение?
К тому же, создай отдельный процесс на винапи для открытия полей и в dwCreationFlags укажи размер стека побольше в STACK_SIZE_PARAM_IS_A_RESERVATION

Добавлено через 12 минут
Цитата Сообщение от CoderHuligan Посмотреть сообщение
требуется другая реализация тех же функций
любую рекурсию можно превратить в цикл, но в ущерб читаемости кода, хотя с получением эффективности
0
 Аватар для CoderHuligan
1754 / 1020 / 257
Регистрация: 30.06.2015
Сообщений: 5,132
Записей в блоге: 56
25.01.2025, 13:19
Цитата Сообщение от Royal_X Посмотреть сообщение
любую рекурсию можно превратить в цикл
В основном хвостовую. И это делают оптимизирующие компиляторы.
Цитата Сообщение от Royal_X Посмотреть сообщение
но это насколько большим должно быть поле, чтобы достичь максимальной глубины?
Да я чисто теоретически. Конкретно в данной задаче большой глубины не требуется.
0
Just Do It!
 Аватар для XLAT
4223 / 2689 / 656
Регистрация: 23.09.2014
Сообщений: 9,252
Записей в блоге: 3
25.01.2025, 13:33  [ТС]
Цитата Сообщение от Royal_X Посмотреть сообщение
но это насколько большим должно быть поле
1 лям ячеек:
визуализатор тормозит на 4 фпс


также испытал:
100'000'000 ячеек игра не падает но 1 фпс.

собсно, мой код честно рендерит все эти 100'000'000 спрайтов ...
т.е. есть что пооптимизировать...
1
Эксперт функциональных языков программированияЭксперт С++
 Аватар для Royal_X
6771 / 3138 / 1065
Регистрация: 01.06.2021
Сообщений: 12,189
25.01.2025, 13:37
Цитата Сообщение от XLAT Посмотреть сообщение
но 1 фпс
так это не из-за рекурсии, однозначно
0
Эксперт функциональных языков программированияЭксперт С++
 Аватар для Royal_X
6771 / 3138 / 1065
Регистрация: 01.06.2021
Сообщений: 12,189
25.01.2025, 20:47
CoderHuligan, XLAT, сколько у вас времени займет создать такую прогу? Пользоваться сторонними картинками нельзя.

Техническое описание:
Окно представляет собой квадрат с белым фоном. Размер окна равен MIN(ширина экрана, высота экрана) / 2.
В центре окна расположен волшебный правильный треугольник, описанный в черный круг.

Вложения
Тип файла: 7z Triangle.7z (78.0 Кб, 11 просмотров)
0
 Аватар для CoderHuligan
1754 / 1020 / 257
Регистрация: 30.06.2015
Сообщений: 5,132
Записей в блоге: 56
25.01.2025, 20:50
Цитата Сообщение от Royal_X Посмотреть сообщение
сколько у вас времени займет создать такую прогу?
На gdi+ это просто сделать. Баловство.))
Я вот только help закончил делать.
0
Эксперт функциональных языков программированияЭксперт С++
 Аватар для Royal_X
6771 / 3138 / 1065
Регистрация: 01.06.2021
Сообщений: 12,189
25.01.2025, 20:51
Цитата Сообщение от CoderHuligan Посмотреть сообщение
На gdi+ это просто сделать. Баловство.))
А ты попробуй и засеки время. Только нужно полностью по описанию.
0
Эксперт функциональных языков программированияЭксперт С++
 Аватар для Royal_X
6771 / 3138 / 1065
Регистрация: 01.06.2021
Сообщений: 12,189
25.01.2025, 23:04
Цитата Сообщение от CoderHuligan Посмотреть сообщение
На gdi+ это просто сделать.
и не только просто, но и весит 14,5 КБ На GDI+ у меня заняло 5 мин. На SFML больше.

Вложения
Тип файла: zip GDI+Triangle.zip (6.9 Кб, 13 просмотров)
0
Just Do It!
 Аватар для XLAT
4223 / 2689 / 656
Регистрация: 23.09.2014
Сообщений: 9,252
Записей в блоге: 3
25.01.2025, 23:41  [ТС]
Цитата Сообщение от Royal_X Посмотреть сообщение
А ты попробуй и засеки время. Только нужно полностью по описанию.
Сколько у тебя времени уйдёт на написание своей функции текстурирования мяча,
так чтобы было без швов,

строго полностью по образцу:
https://www.cyberforum.ru/post13493354.html

???

вопрос касается исключительно Royal'у.

Кликните здесь для просмотра всего текста

Цитата Сообщение от Royal_X Посмотреть сообщение
сколько у вас времени займет создать такую прогу?
ушло времени 1 минута
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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
#define SFML_STATIC
///----------------------------------------------------------------------------|
/// ...
/// отключить консольное окно: -mwindows
///----------------------------------------------------------------------------:
#include <iostream>
#include <string>
#include <vector>
#include <memory>
#include <cmath>
#include <SFML/Graphics.hpp>
 
///----------------------------------------------------------------------------|
/// Run
///----------------------------------------------------------------------------:
struct  Run
{       Run() : window(sf::VideoMode(600, 600), "T01::Hello")
 
        {   hero.setPosition    ( 50, 100              );
            hero.setFillColor   (sf::Color(255,255,255));
            hero.setSize        ({700, 450}        );
            hero.setOutlineColor(sf::Color (50,0,0));
            hero.setOutlineThickness           (5.f);
 
            font.loadFromFile   ("c:/windows/fonts/georgia.ttf"); ///<-------!!!
 
            text.setFont                (font);
            text.setCharacterSize         (50);
            text.setStyle  (sf::Text::Regular);
            text.setFillColor(sf::Color::Blue);
 
            loop();
        }
 
    sf::RenderWindow window;
    sf::RectangleShape hero;
    sf::Font           font;
    sf::Text           text;
    sf::CircleShape  circle;
 
    void process_mouse(const sf::Vector2i& mouse_pos)
    {   std::string s("XY = {");
                    s += std::to_string(mouse_pos.x) + ", ";
                    s += std::to_string(mouse_pos.y) + "}" ;
        text.setString(s);
    }
 
    void foo()
    {
        float a =   -3.14f / 2;
        float r = 300.f;
        float k =   3.14f * 2 / 3;
 
        sf::Vector2f p(300, 300);
 
        circle.setFillColor(sf::Color(0,0,0));
        circle.setPosition ( 000, 000       );
        circle.setRadius   ( r);
 
        sf::VertexArray lines(sf::LineStrip,    3) ;
        lines[0].position = sf::Vector2f(r*cosf(a) + p.x, r*sinf(a) + p.y); a += k;
        lines[1].position = sf::Vector2f(r*cosf(a) + p.x, r*sinf(a) + p.y); a += k;
        lines[2].position = sf::Vector2f(r*cosf(a) + p.x, r*sinf(a) + p.y);
        lines.setPrimitiveType  ( sf::Triangles  ) ;
 
        lines[0].color = sf::Color(255,0,0);
        lines[1].color = sf::Color(0,255,0);
        lines[2].color = sf::Color(0,0,255);
 
        window.draw(lines);
    }
 
    void loop()
    {
        sf::Vector2i mouse_pos;
 
        while (window.isOpen())
        {
            for (sf::Event event; window.pollEvent(event);)
            {
                if (event.type == sf::Event::Closed) window.close();
 
                ///------------------------------------|
                /// MouseMoved только здесь.           |
                ///------------------------------------:
                if (event.type == sf::Event::MouseMoved)
                {   mouse_pos  =  sf::Mouse::getPosition(window);
                    process_mouse(mouse_pos);
                }
            }
 
            window.clear(sf::Color(200,200,200));
            //window.draw (hero);
            //window.draw (text);
 
            window.draw (circle);
            foo();
 
            window.display ();
        }
    }
};
 
///----------------------------------------------------------------------------|
/// Start.
///----------------------------------------------------------------------------:
int main()
{   std::unique_ptr<Run> run(new Run);
}
0
Эксперт функциональных языков программированияЭксперт С++
 Аватар для Royal_X
6771 / 3138 / 1065
Регистрация: 01.06.2021
Сообщений: 12,189
25.01.2025, 23:58
XLAT, скинь прогу, чтобы я посмотрел
0
Эксперт функциональных языков программированияЭксперт С++
 Аватар для Royal_X
6771 / 3138 / 1065
Регистрация: 01.06.2021
Сообщений: 12,189
26.01.2025, 00:31
Цитата Сообщение от XLAT Посмотреть сообщение
Сколько у тебя времени уйдёт на написание своей функции текстурирования мяча
вот тебе кожаный мяч с позолоченной надписью)))

1
Эксперт функциональных языков программированияЭксперт С++
 Аватар для Royal_X
6771 / 3138 / 1065
Регистрация: 01.06.2021
Сообщений: 12,189
26.01.2025, 00:45
Цитата Сообщение от XLAT Посмотреть сообщение
ушло времени 1 минута
очень долго

Цитата Сообщение от Royal_X Посмотреть сообщение
вот тебе кожаный мяч с позолоченной надписью)))
на это ушло 18 мин, но писал на вулкане и в блокноте На DirectX вышло бы 10 мин, на OpenGL 4 мин
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
26.01.2025, 00:45

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

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
460
Закрытая тема Создать тему
Новые блоги и статьи
Транслитерация текста с кириллицы на латиницу (вариант №2)
Maks 13.11.2026
Обновленная версия ранее созданной обработки. Добавлено: - Проверка исходного текста на кириллицу, через обращение к стандартной функции "ТолькоКириллицаВСтроке" из общего модуля. . .
Часы с термометром и праздничным календарем
yariko 12.11.2026
Сегодня мы рассмотрим как можно сделать отличные многофункциональные часы. Итак, поставим конкретную задачу: разработать часы с календарем, двумя термодатчиками, выводом поздравительных сообщений. . .
Транслитерация текста с кириллицы на латиницу (вариант №1)
Maks 11.11.2026
Решил облегчить жизнь себе и коллегам админам при создании электронных почтовых ящиков для пользователей, в результате написал обработку "Транслитерация текста" с кириллицы на латиницу, а в ней. . .
Книги по геймдизайну, левел-дизайну, игровым механикам и проектированию игрового опыта
8Observer8 08.11.2026
Содержание блога | English Version 1. 2003 - 06 - Designing Virtual Worlds (1st Edition) Автор: Richard A. Bartle | Объем: 768 стр. Ссылки: Amazon . . .
Родители токсичные абьюзеры по отношению к своим детям ругают их оскорбляют не любят
zorxor 08.11.2026
Жить в атмосфере постоянных оскорблений, критики и холодности со стороны родителей — это тяжелое и болезненное испытание, которое оставляет глубокие эмоциональные раны. Токсичное и абьюзивное. . .
Как только я захожу к себе в свою комнату я сразу же с себя снимаю свои трусы. Ответ от Джемени ИИ.
zorxor 08.11.2026
Джемени, как только я захожу к себе в свою комнату я сразу же с себя снимаю свои трусы. Многие люди, возвращаясь домой, сразу переодеваются в максимально свободную одежду или вовсе предпочитают. . .
Паттерн очереди действий/команд (Action / Command Queue). Система очереди действий и кат-сцен с SDL3 Callbacks, cglm и OpenGL
8Observer8 07.11.2026
Содержание блога | English Version Руководство для начинающих по реализации паттерна очереди действий/ команд (Action / Command Queue) на C++ (C++20) с использованием официального SDL3 Callbacks. . .
Проверка полного ФИО в типовом справочнике
Maks 07.11.2026
Решение реализовано в конфигурации КА2, на примере справочника "КонтактныеЛицаПартнеров". Задача: Запрет инициалов. Не допускаеть использование сокращений вида "И. И. ", "И. И. ", "И И" и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru