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

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

08.01.2025, 12:45. Показов 53395. Ответов 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
Заблокирован
18.01.2025, 14:23
Студворк — интернет-сервис помощи студентам

Ни чё здесь не видно.
Выше в архиве я выкладывал.
0
Эксперт функциональных языков программированияЭксперт С++
 Аватар для Royal_X
6771 / 3138 / 1065
Регистрация: 01.06.2021
Сообщений: 12,191
18.01.2025, 15:07
Цитата Сообщение от XLAT Посмотреть сообщение
по сути это пародия на двойную буферизацию.
потому что подразумевает копирование.
в общем я так и сделал:
1. создал буферную битмапу
2. туда рисовал.
3. копировал на wxFrame
ну вообще-то я это и имел в виду. Рисуешь на буферном битмапе.

Добавлено через 2 минуты
XLAT, вот кусок моего кода

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
void MAIN::onPaint(HDC hdc)
{
    Graphics graphics(hdc);
    Bitmap bitmap(px512, px512, &graphics);
    Graphics* g = new Graphics(&bitmap);
    g->SetInterpolationMode(InterpolationModeNearestNeighbor);
 
    for (int i{}; i < 16; ++i)
        for (int j{}; j < 16; ++j)
            drawCell(j, i, gridView[i][j], g);
    
    graphics.DrawImage(&bitmap, 0, 0);
    delete g;
}
Обрати внимание, что я рисую спрайты не на graphics, а на g
1
Just Do It!
 Аватар для XLAT
4223 / 2689 / 656
Регистрация: 23.09.2014
Сообщений: 9,252
Записей в блоге: 3
18.01.2025, 15:40  [ТС]
Royal_X,
а вот щас такая бяка вскрылось:
если подергать мышкой размер окна, то оно - окно снова начинает моргать...

... ёшкин кот ...

Добавлено через 42 секунды
Цитата Сообщение от Royal_X Посмотреть сообщение
вот кусок моего кода
так то гди+

там легко)
0
Заблокирован
18.01.2025, 15:43
C++
1
2
3
4
5
6
// Здесь меняю спрайты для кнопочки - не микшировать.  
        if(!no_muxung)no_muxing_key.loadFromImage(extra);
                    else no_muxing_key.loadFromImage(extra_n);
                        Sprite  no_muxung_sprite(no_muxing_key);
                            no_muxung_sprite.setPosition(389,// Коорд - X
                                    318);
C++
1
2
3
4
5
6
7
8
9
10
11
12
//  ============================= < КНОПКА NO_MUXING > ===========================
            if (!no_mux && no_muxung_sprite.getGlobalBounds().contains(pos.x, pos.y))
                            {
            no_muxung_sprite.setColor(sf::Color(50, 150, 50));//красим КНОПКУ в невьебенный цвет 
                                                    
            if (event.type == Event::MouseButtonPressed)//если нажата клавиша мыши
                // Работа --------
                       if (event.key.code == Mouse::Left)
                if (no_muxung)no_muxung = false;
                    else no_muxung = true;
                    }
               else no_muxung_sprite.setColor(Color::White);// Кнопка no_muxung белеет
Я что то не дизайнер. Мне програмировать больше нравиться.

Название: final_file (2).gif
Просмотров: 78

Размер: 283.9 Кб
Audio index - Бывают кино, с несколькими аудиотреками.
Скопирую любой. (Кусок, или целиком.)
0
Just Do It!
 Аватар для XLAT
4223 / 2689 / 656
Регистрация: 23.09.2014
Сообщений: 9,252
Записей в блоге: 3
18.01.2025, 15:46  [ТС]
Цитата Сообщение от XLAT Посмотреть сообщение
... ёшкин кот ...
короче,
надо к верстке переходить - расставить контролы - рисовать там - мошъ всё рассосется само собой)
0
 Аватар для CoderHuligan
1754 / 1020 / 257
Регистрация: 30.06.2015
Сообщений: 5,132
Записей в блоге: 56
18.01.2025, 16:37
А я сделал как в оригинале: окно не может растягиваться. А чтобы не было мерцаний, надо конечно юзать либы специально предназначенные под создание игр, например SDL и подобные.
1
Заблокирован
18.01.2025, 17:06
Цитата Сообщение от CoderHuligan Посмотреть сообщение
юзать либы специально предназначенные под создание игр
Ну да. Я того же мнения.
0
Эксперт функциональных языков программированияЭксперт С++
 Аватар для Royal_X
6771 / 3138 / 1065
Регистрация: 01.06.2021
Сообщений: 12,191
18.01.2025, 19:47
Цитата Сообщение от gunslinger Посмотреть сообщение
С нуля интересней (наверно).
интересно, когда нужно решать головоломки во время разработки. И вот в этой игре я нашел одну такую.

Например, мне вот интересно, как реализовать это как 3d игру? Дело в том, что если применить к шару шахматную текстуру, то при вращении шара размер ячеек будет отличаться от экватора к полюсам.
А ведь, я изначально представлял, что герой может оставаться на месте, а при движении будем вращать шар.
Но вот этот момент с текстурой меня озадачил. Потому что в этой 2д игре, по сути, оптическая иллюзия, которую сложно реализовать в реальном 3д мире.
0
Чугунные скороходы
 Аватар для ARRAYBOW
17 / 16 / 3
Регистрация: 25.12.2022
Сообщений: 367
18.01.2025, 20:07
Тема про то, что человек ищет напарника для совместного обучения C++.
А тут пришли стародумы, спорящие кто лучше игру накодит.
Сапер весом в несколько КБ, сцена из сегы...

Добавлено через 2 минуты
Из 343 сообщений 3 автора. Вы 340 сообщений за неделю написали
1
Эксперт функциональных языков программированияЭксперт С++
 Аватар для Royal_X
6771 / 3138 / 1065
Регистрация: 01.06.2021
Сообщений: 12,191
18.01.2025, 20:48
Цитата Сообщение от Royal_X Посмотреть сообщение
Дело в том, что если применить к шару шахматную текстуру, то при вращении шара размер ячеек будет отличаться от экватора к полюсам.
А ведь, я изначально представлял, что герой может оставаться на месте, а при движении будем вращать шар.
gunslinger, вообще, я нашел решение, как реализовать данную оптическую иллюзию.

Когда соник бежит, то мы вращаем шар - землю, а сам соник всегда остается на месте. Всякие изумруды вращаются вместе с шаром. Визуально кажется, что соник бежит, а шар не двигается.
Проблема была в том, что у шахматной текстуры применённой к шару есть полюса с искривлениями, а нам нужно, чтобы соник бежал только по экватору, чтобы на его пути все клетки были без искривлений.
Когда соник поворачивается налево или направо (на самом деле, соник остается на месте, а переворачиваем шар), то на его пути могут попасться полюса и искривления.
Решение проблемы является смена координат UV развертки текстуры. Для этого создаем переключатель Flag для шейдера материала сферы, который поворачивает развертку сферы.



Остается потом, через код включать и отключать данный флажок.

Т.е. мы не вращая сам шар, вращаем его текстуру.

Вот сами настройки шейдера.

1
place status here
 Аватар для gunslinger
3192 / 2227 / 640
Регистрация: 20.07.2013
Сообщений: 6,028
18.01.2025, 21:09
Цитата Сообщение от XLAT Посмотреть сообщение
а вы, я как полагаю, хотите прямо повторить на ассемблере сеги той модели))
Я имел в виду, что "математику" (сам шар, его вращение и прочее) желательно прописать руками, не используя готовые "движки".
Допустим, на ПК и с помощью С++. Меня, как обычно, не так поняли.

Цитата Сообщение от Наталья8 Посмотреть сообщение
А сейчас это будет ещё и неблагодарная работа.
"Цель" - повторить (воспроизвести) гениальную работу "людей того времени".

Цитата Сообщение от Royal_X Посмотреть сообщение
я изначально представлял, что герой может оставаться на месте, а при движении будем вращать шар
Это только в конце, когда берешь изумруд. Хотя вращение доступно при движении (в момент движения), если это не "иллюзия".
Цитата Сообщение от Royal_X Посмотреть сообщение
Потому что в этой 2д игре, по сути, оптическая иллюзия
Не исключено.

Добавлено через 13 минут
Вот еще что меня всегда поражало (из серии "как они все это сделали"):

0
Эксперт функциональных языков программированияЭксперт С++
 Аватар для Royal_X
6771 / 3138 / 1065
Регистрация: 01.06.2021
Сообщений: 12,191
18.01.2025, 21:28
Цитата Сообщение от gunslinger Посмотреть сообщение
"Цель" - повторить (воспроизвести) гениальную работу "людей того времени".
а зачем повторить то, что уже давно сделано? Тем более, ты все равно не сможешь сделать точную копию, ведь у программистов из той эпохи были очень ограниченные инструменты разработки, железо и отсутствие доступа к инету и прочим средствам помощи (например, ИИ).
0
place status here
 Аватар для gunslinger
3192 / 2227 / 640
Регистрация: 20.07.2013
Сообщений: 6,028
18.01.2025, 21:47
Royal_X, я про точную копию не говорю.
А насчет "повторить" - такая идея фикс ("врача, врача, позовите врача").
0
Чугунные скороходы
 Аватар для ARRAYBOW
17 / 16 / 3
Регистрация: 25.12.2022
Сообщений: 367
18.01.2025, 21:50
Может для этого тогда создадим новую тему "Изобретаем велосипед"?
0
Заблокирован
18.01.2025, 23:48
Цитата Сообщение от gunslinger Посмотреть сообщение
"как они все это сделали"
А ни чего особенного они не делали.

Шлёпали вот такие штуки с листа на экран.
Мультики получаються.
На SFML поработать и поймёшь.
1
Заблокирован
18.01.2025, 23:52
C++
1
2
3
4
5
6
7
window.draw(sprite); window.draw(sprite1);  window.draw(sprite2);
                        window.draw(no_muxung_sprite); window.draw(key_sprite3);
                        window.draw(sprite4);
                        window.draw(key_sprite4); window.draw(key_sprite5);
                        window.draw(key_sprite6); window.draw(sprite6);
                        window.draw(sprite7);
                        window.draw(audio_sprite);
window.draw - Одна на другую наклеиваються.
В процессе цикла, каждую итерацию кадрики меняються.
Сейчас железо мощнее. Можно спрайты поподробнее рисовать.
Цитата Сообщение от gunslinger Посмотреть сообщение
такая идея фикс
Только у меня нету такой идеи. И желание отсутствует.
0
place status here
 Аватар для gunslinger
3192 / 2227 / 640
Регистрация: 20.07.2013
Сообщений: 6,028
19.01.2025, 01:17
Наталья8, я про логику и математику, а не рисование спрайтов.
Не думаю, что там сфера в виде разных картинок. Скорей всего аффинные преобразования (включая "вывод 3д на 2д" или что-то такое).
Хотя могу и ошибаться.

Royal_X, тут скорее "преклонение перед талантом". Ну и немного ностальгии.
1
Заблокирован
19.01.2025, 01:58
Цитата Сообщение от gunslinger Посмотреть сообщение
аффинные преобразования
Да брось ты... Афинные чего?
Такие же картинки, только увеличенные на весь экран.
Лепят фон, на него поверх персонажей.
Динамически это всё.
Фон постоянно меняеться....

Добавлено через 1 минуту
Цитата Сообщение от gunslinger Посмотреть сообщение
преклонение перед талантом
Бизьнес это китайский был. Я в них не играл. Спектрум у меня был тогда.
И дисков куча. Игры похуже были, но их было много.
0
place status here
 Аватар для gunslinger
3192 / 2227 / 640
Регистрация: 20.07.2013
Сообщений: 6,028
19.01.2025, 02:40
Цитата Сообщение от Наталья8 Посмотреть сообщение
Такие же картинки, только увеличенные на весь экран.
Может быть.

0
 Аватар для CoderHuligan
1754 / 1020 / 257
Регистрация: 30.06.2015
Сообщений: 5,132
Записей в блоге: 56
19.01.2025, 07:30
Цитата Сообщение от Royal_X Посмотреть сообщение
а создавать современные игры
На чём? на плюсах? Терзают смутные сомнения, что придется городить велосипеды. Я вот вчера дебажил код, там один delete тянет столько незаметных функций что впору за голову хвататься. Люди видимо хотели что-нить понаписать и оставить свой след, причем навечно, в истории IT..
Но к игроделу это мало относится. Тут нужна скорость скорость и еще раз скорость. А они нагородили свои аллокаторы поверх сишных аллокаторв, которые, в свою очередь, тоже не блещут особой скоростью. потом приходят игроделы и городят свои аллокаторы поверх приплюснутых. Потом они начинают бороться с тормозами при помощи разных костылей..
Цитата Сообщение от Royal_X Посмотреть сообщение
а зачем повторить то, что уже давно сделано?
Повторять надо, это особая тренировка. Сначала копируем то, что было сделано, потом создаем что-то свое.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
19.01.2025, 07:30

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

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
340
Закрытая тема Создать тему
Новые блоги и статьи
Транслитерация текста с кириллицы на латиницу (вариант №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
Джемени, как только я захожу к себе в свою комнату я сразу же с себя снимаю свои трусы. Многие люди, возвращаясь домой, сразу переодеваются в максимально свободную одежду или вовсе предпочитают. . .
Паттерн очереди действий/команд (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, на примере справочника "КонтактныеЛицаПартнеров". Задача: Запрет инициалов. Не допускаеть использование сокращений вида "И. И. ", "И. И. ", "И И" и. . .
Про "Windows must die!"
kumehtar 04.11.2026
Знаете, чет накатило. . . . Когда-то это было почти боевым кличем: мол, нормальный человек сидит на DOS, OS/ 2 или Linux, а вот это вот - Must Die. А теперь человек произносит «мастдай» с усмешкой - и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru