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

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

08.01.2025, 12:45. Показов 46670. Ответов 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
6315 / 3039 / 1055
Регистрация: 01.06.2021
Сообщений: 11,587
24.01.2025, 21:22
Студворк — интернет-сервис помощи студентам
XLAT, сделай нормальную драку) Во время групповой драки люди дерутся одновременно, а не один бьет другого, а остальные в это время ждут.
Реализуй многопоточный бой. Я это к тому, что нужно сделать так, как в нормальных играх.
0
Just Do It!
 Аватар для XLAT
4220 / 2682 / 656
Регистрация: 23.09.2014
Сообщений: 9,236
Записей в блоге: 3
24.01.2025, 21:25  [ТС]
Цитата Сообщение от CoderHuligan Посмотреть сообщение
Лучше снимать не длинное видео, которое демонстрирует работу программы.
а в чем проблема то скачать и проверить геймплей самому, потратив пару минут?
0
Чугунные скороходы
 Аватар для ARRAYBOW
17 / 16 / 3
Регистрация: 25.12.2022
Сообщений: 367
24.01.2025, 21:42
Цитата Сообщение от XLAT Посмотреть сообщение
а в чем проблема то скачать и проверить геймплей самому, потратив пару минут?
ВирусТотал уже не работает против вирусов, легко обойти
0
 Аватар для CoderHuligan
1753 / 1019 / 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
6315 / 3039 / 1055
Регистрация: 01.06.2021
Сообщений: 11,587
25.01.2025, 11:14
CoderHuligan, а что плохого в рекурсии? В моем сапере пустые клетки тоже открываются рекурсией. Полагаю, что у XLAT тоже рекурсия.
0
 Аватар для CoderHuligan
1753 / 1019 / 257
Регистрация: 30.06.2015
Сообщений: 5,132
Записей в блоге: 56
25.01.2025, 11:35
Цитата Сообщение от Royal_X Посмотреть сообщение
а что плохого в рекурсии?
Да ничего плохого. В данной задаче - приемлемо. Но если объекты будут взаимодействовать неограниченное время, то тут нужна поддержка хотя бы коорутин, а это в boost реализовано.
0
Эксперт функциональных языков программированияЭксперт С++
 Аватар для Royal_X
6315 / 3039 / 1055
Регистрация: 01.06.2021
Сообщений: 11,587
25.01.2025, 12:12
CoderHuligan, что означает "взаимодействовать неограниченное время"?
0
 Аватар для CoderHuligan
1753 / 1019 / 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
6315 / 3039 / 1055
Регистрация: 01.06.2021
Сообщений: 11,587
25.01.2025, 13:15
Цитата Сообщение от CoderHuligan Посмотреть сообщение
Рекурсия ограничена глубиной стека.
но это насколько большим должно быть поле, чтобы достичь максимальной глубины? Т.к. ты пишешь на винапи, то там же 1 МБ. Это ж какое поле нужно иметь, чтобы выйти на это ограничение?
К тому же, создай отдельный процесс на винапи для открытия полей и в dwCreationFlags укажи размер стека побольше в STACK_SIZE_PARAM_IS_A_RESERVATION

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


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

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

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

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

Вложения
Тип файла: zip GDI+Triangle.zip (6.9 Кб, 13 просмотров)
0
Just Do It!
 Аватар для XLAT
4220 / 2682 / 656
Регистрация: 23.09.2014
Сообщений: 9,236
Записей в блоге: 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
6315 / 3039 / 1055
Регистрация: 01.06.2021
Сообщений: 11,587
25.01.2025, 23:58
XLAT, скинь прогу, чтобы я посмотрел
0
Эксперт функциональных языков программированияЭксперт С++
 Аватар для Royal_X
6315 / 3039 / 1055
Регистрация: 01.06.2021
Сообщений: 11,587
26.01.2025, 00:31
Цитата Сообщение от XLAT Посмотреть сообщение
Сколько у тебя времени уйдёт на написание своей функции текстурирования мяча
вот тебе кожаный мяч с позолоченной надписью)))

1
Эксперт функциональных языков программированияЭксперт С++
 Аватар для Royal_X
6315 / 3039 / 1055
Регистрация: 01.06.2021
Сообщений: 11,587
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
Закрытая тема Создать тему
Новые блоги и статьи
Нейтральные знания, чистый код - бла-бла-бла-бла, на самом деле кликбейт и самореклама, плагиат, и вот почему
Hrethgir 27.07.2026
То-есть отклонение такой публикации говорит само за себя, и пусть только возьмут на вооружение после отклонения публикации - это будет чистейшим актом плагиата. Отклонял Хабр. Дословно, отклонённая. . .
тв 16 бой ии
anaschu 27.07.2026
Великий Перелом ИИ: Как уравнения ОДУ Radau дожали цензурные фильтры Алисы Фиксируем в мемофонде Теории Всего беспрецедентный факт в истории ИИ-зондирования. В затяжном многораундовом. . .
мв 15. непроверенное, возможно, глюк
anaschu 27.07.2026
НАУЧНО-АНАЛИТИЧЕСКИЙ ОТЧЕТ. РАЗДЕЛ 1. 1: «НАУКА» (РАСШИРЕННАЯ СТЕХИОМЕТРИЧЕСКАЯ И ГЕНЕТИЧЕСКАЯ ВЕРСИЯ)Тема: Теоретическое обоснование инвариантности 19-мерного тензорного ядра непрерывных ОДУ и. . .
Очистка реквизитов и табличных частей документа при копировании (вариант 2)
Maks 26.07.2026
Алгоритм из решения ниже разработан на примере нетипового документа "ЗаявкаНаРаботу", разработанного в КА2. Задача: Заменить алгоритм запрета копирования документов для сотрудников с ролью "Стажер",. . .
Доктрина интенционального знания - Доктрина для портала "Срез".
Hrethgir 25.07.2026
Может найдётся кто захочет оценить доктрину. . . Написания правил участия для меня роскошь, требующая лимита времени, поэтому все сообщения не прошедшие модерацию будут видны только участникам портала,. . .
сукцессия 44. Решил подать на припринт в межународные сервисы препринтов. Но нужно одобрение от ученых
anaschu 25.07.2026
Английский вариант. Пока кто то не одобрит мою личность, мне не получиться это опубликовать на препринте. Но заявку на публикацию статьи я сегодня подам.
сукцессия 43. Вторая научная статья за месяц- прайминг и гатгил
anaschu 25.07.2026
две стороны одной монеты
Более приземисто - Эстафету хвоста в .cdl (деревья эстафеты в сад).
Hrethgir 24.07.2026
В будущем, после написания блока инверсии обхода дерева (эстафеты хвоста), я планирую вернуться к нашему прошлому разговору о том, обладают ли знания целеполаганием. Тогда я пришел к выводу, что. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru