|
Just Do It!
|
||||||||
Совместное создание игры08.01.2025, 12:45. Показов 45124. Ответов 942
Метки нет (Все метки)
если ТС готов варганить со мной сапера, то я сделаю ещё одну попытку его(пожалуй 4 версию) установить и испытать. собсно что нужно: формально отображать некие графические модели на экране в нужном его месте нужного масштаба, для теста сойдут спрайты - а потом можно и анимированные модели на усмотрение геймдиза)) и больше ничаво.
0
|
||||||||
| 08.01.2025, 12:45 | |
|
Ответы с готовыми решениями:
942
Для чего создан язык С++? создан массив Теория игр, массивы |
|
Just Do It!
|
||
| 27.02.2025, 02:26 [ТС] | ||
|
я тут составил, ментальным образом, список задач на эту тему, его мя на весь энтот код хватит, задачи энти не обязательно жестко связанны с энтим пазлом, а имеют унифицированные цели...
0
|
||
|
6279 / 3003 / 1051
Регистрация: 01.06.2021
Сообщений: 11,252
|
|
| 27.02.2025, 02:36 | |
|
XLAT, а мне нужно
- добавить кнопку для сохранения результата в виде изображения (реализуется за 5 мин) - улучшить временную сложность алгоритма (самая главная задача, пока размышляю и нет решения) - вычисления перевести на отдельный поток (реализуется быстро) - сделать прогресс бар (это тоже реализуется быстро, но для этого нужно реализовать многопоточность, чтобы гуй не замораживался при вычислении) - заняться самыми мелкими оптимизациями и чисткой кода (последний этап) *** Моя самая главная проблема: я работаю над проектом где-то по 10 мин в день (а иногда 0 минут), поскольку в реальной жизни много проблем и дел...
0
|
|
|
6279 / 3003 / 1051
Регистрация: 01.06.2021
Сообщений: 11,252
|
|
| 27.02.2025, 16:16 | |
|
Image Assemble Tool (находится во вложении в архиве)
Представляю мою программу Что умеет программа: - удобный выбор папки с кусками - удобный выбор пропорций изображения из списка, причем, дефолтно выбрано среднее значение - отображение полезной информации в окне лога (название выбранной папки, количество загруженных кусков, разрешение куска, время старта сборки, время окончания сборки, потраченное время, разрешение полученного изображения) - отображения понятным языком всех ошибок - защита от дурака: кнопки выбора папки и старта неактивны во время процесса сборки - показ прогресса сборки в процентах - сохранение полученного изображения в PNG, JPG, BMP - реализована многопоточность, а это означает, что пользовательский интерфейс полностью активен и не фризится во время процесса сборки *** Прога без проблем собирает куски из Совместное создание игры Она также собирает 384 куска из поста Совместное создание игры, но с незначительными артефактами, учитывая, что разрешение куска 32 х 32 небольшое, что не позволяет алгоритму принимать однозначные решение. Будет время и желание, можно улучшить алгоритм сборки. Найдете баги - пишите) Для создания кусков в целях тестирования моей проги, можете использовать бесплатные сервисы в инете, например, https://imagy.app/split-image/
3
|
|
|
place status here
3192 / 2227 / 640
Регистрация: 20.07.2013
Сообщений: 6,026
|
||||||
| 27.02.2025, 17:47 | ||||||
|
А я немного доработал рисование фрактала Жулиа ("случайно" задаются шаг и цвет, можно менять размеры окна и сохранять картинку в bmp с помощью ПКМ):
Некоторые картинки:
2
|
||||||
|
6279 / 3003 / 1051
Регистрация: 01.06.2021
Сообщений: 11,252
|
|
| 27.02.2025, 20:42 | |
|
gunslinger, алгоритм раскраски реально хорош, это ты писал или взял? Я в теме Кто-нибудь знает, как рендерят такие красивые фракталы? (множество Мандельброта) обсуждал с Mysterious Light, мы, короче, пришли к выводу, что большая часть красоты полученного фрактала зависит от правильного выбора палитры. Вот, посмотри, что я получил в Mathematica на дефолтной палитре, и посмотри, что получил Mysterious Light в Кто-нибудь знает, как рендерят такие красивые фракталы? (множество Мандельброта).
0
|
|
|
place status here
3192 / 2227 / 640
Регистрация: 20.07.2013
Сообщений: 6,026
|
|
| 27.02.2025, 21:15 | |
|
Royal_X, указанную тобой тему я видел.
Код для фрактала изначально взял чужой (как-то говорил об этом) Совместное создание игры (он у меня давно на компе был) и немного подправил (выбор исходных цветов в интервале через рандом). Возможно, вот оригинал (точно уже не помню, но скорей всего он): Вращение фрактала Жюлиа. Кстати, программа не подвисает и не глючит? У меня иногда да, если вне среды запустить. Хочу еще в поток отрисовку поместить (если нормально получится сделать, в чем не уверен - формошлепство реально сушит [оставшиеся] мозги).
0
|
|
|
6279 / 3003 / 1051
Регистрация: 01.06.2021
Сообщений: 11,252
|
||
| 27.02.2025, 21:21 | ||
|
Только, тебе нужно будет расчет делать в отдельном потоке, а отрисовку в главном, потому что, полагаю, что нельзя менять форму с другого потока. Еще, не нужно выводить на окно постепенно, это неэффективно. Рисуй весь фрактал в буфере в памяти, а потом выводи на окно готовое изображение.
1
|
||
|
place status here
3192 / 2227 / 640
Регистрация: 20.07.2013
Сообщений: 6,026
|
|
| 27.02.2025, 22:27 | |
|
Royal_X, я раньше в потоке только расчеты делал, но не рисование. AntiFreeze (компонент) не в счет, там "автоматика". Включил - и либо работает, либо нет.
Причем нужно тогда еще запретить изменение размеров формы, на которых много чего завязано. Насчет вывода картинки сразу, а не постепенно - нужно тогда прогрессбар прикрутить или наподобие. Мне кажется, что постепенный вывод как-то смотрится что ли лучше, но хз. Короче, надо посмотреть, что получится, а что нет. И нужно ли это.
0
|
|
|
6279 / 3003 / 1051
Регистрация: 01.06.2021
Сообщений: 11,252
|
|||
| 27.02.2025, 22:47 | |||
|
я же тоже ради этого в своей программе Совместное создание игры реализовал многопоточность. Юзеры очень часто кликают по интерфейсу во время ожидания и эти зависания могут их разочаровывать. Добавлено через 2 минуты Добавлено через 4 минуты gunslinger, я не знаю, как у тебя на VCL, но вот в Qt всякие обновления сцен, прогресс бара и прочие вещи, можно осуществлять только с главного потока. Например, обновить значение прогресс бара напрямую из второстепенного потока нельзя. Как же я сделал? Все просто: передаю по сигналу новое значение прогресс бара, а сам он обновляется в главном потоке. В итоге, пользовательский интерфейс работает без зависаний, независимо от потока, в котором выполняются вычисления.
1
|
|||
|
place status here
3192 / 2227 / 640
Регистрация: 20.07.2013
Сообщений: 6,026
|
|||||||||||||
| 28.02.2025, 00:16 | |||||||||||||
|
Нужно его как-то менять (хз как), или выигрыша в скорости не будет особо. Поэтому оставил постепенный вывод. Добавил один поток. Нужно было просто попиксельную отрисовку "синхронизировать". Вроде работает. Unit1.cpp:
Unit2.cpp:
1
|
|||||||||||||
|
6279 / 3003 / 1051
Регистрация: 01.06.2021
Сообщений: 11,252
|
|
| 28.02.2025, 00:24 | |
|
gunslinger, сейчас норм, не зависает
Теперь осталось реализовать ввод координат, чтобы пользователь мог исследовать в любой части фрактала
0
|
|
|
place status here
3192 / 2227 / 640
Регистрация: 20.07.2013
Сообщений: 6,026
|
||
| 28.02.2025, 00:43 | ||
|
Насчет координат - это можно сделать (если нужно). Изначально я делал "случайную" генерацию, но почти всегда происходило попадание в "пустоту". Шаг (step) не хочу менять - пусть продолжает выпадать в некотором диапазоне, как и цвета (так "веселее").
0
|
||
|
place status here
3192 / 2227 / 640
Регистрация: 20.07.2013
Сообщений: 6,026
|
|
| 28.02.2025, 02:21 | |
|
Решил все-таки шаг добавить - так удобней будет область ограничивать.
Код мало поменялся, поэтому его не выкладываю (да и кому он нужен , главное - результат).Картинки:
1
|
|
|
place status here
3192 / 2227 / 640
Регистрация: 20.07.2013
Сообщений: 6,026
|
|
| 28.02.2025, 02:52 | |
|
0
|
|
|
place status here
3192 / 2227 / 640
Регистрация: 20.07.2013
Сообщений: 6,026
|
|
| 28.02.2025, 13:39 | |
|
Есть совет по оптимизации построения фрактала (даже два, но второй слишком сложный для меня - я даже с первым не справился).
Но я либо не понял, как это применить, либо руки кривые. Результат пока отсутствует. Еще хороший сайт с информацией по соответствующей тематике. Можно самостоятельно попробовать сделать свою реализацию. Кроме того, это всего лишь небольшая часть "айсберга": кроме "стандартных" фракталов вида z2 + c есть еще куча других (много их) формул, с которыми можно экспериментировать. Ну и несколько картинок:
0
|
|
|
6279 / 3003 / 1051
Регистрация: 01.06.2021
Сообщений: 11,252
|
|||
| 28.02.2025, 14:00 | |||
|
gunslinger, мое мнение в этом вопросе такое, что виновник медленной генерации это не само вычисление, а механизм прорисовки. Постепенная прорисовка непосредственно на окне это очень медленно. К тому же, попробуй, например, изменить размеры окна или перетащи окно за пределы экрана и верни его обратно, ты увидишь, что картинка исчезнет, поскольку окно не обновляется.
Т.е. ты не там ищешь решение. На языке С++ совсем не проблема создать изображение из такого количества точек. Даже питон бы справился. Ты же вычисляешь цвет пикселей, которых на окне width * height штук, не так ли? Даже для самых больших окон это не так уж много пикселей. Но вот постепенное добавление этих точек на окно и обновление окна, это уже проблема. Конечно, есть версия, что ты вычисляешь больше точек, чем нужно для окна. Тогда да, нужно исправить это. Но сперва, я бы попробовал вывести изображение целиком и посмотреть, исчезла ли проблема. По идее, фрактал должен генерироваться мгновенно. Т.е. нажал на кнопку, получил картинку. Фрактал должен выводиться моментально.
1
|
|||
|
Just Do It!
|
||
| 28.02.2025, 18:32 [ТС] | ||
|
далее пошёл на трубу смотреть подкасты. вот один тут c кибердедом прямо в мою тему зашёл. в чем суть: 1. я решил добавить класс с резаком картинок, чтобы иметь тестовый материал. 2. резак, как резак, но сразу возникло несколько вопросов, один из них, как его отображать на экран. 3. речь не про юзверьский дизайн - речь про кодерский. 4. у мя уже был класс для отображения загруженного таска. 5. делать же для резак отдельный отобразитель это, ясень, не кошерно. 6. поэтому опять и снова возник вопрос об универсальных интефейсах. 7. но мы же хотим быстро за 10 минут, правда? 8. так вот тут как раз рассказывал про три языка программирования, которые создавались под проект Буран. 9. и они, вот же, ёшкинкот, были не совместимы между собой просто никак. ... цифры кончились ... короче, пришлось унифицировать уже имеющийся отобразитель код резака тут c тестом поигрался чуток: теперь думаю, куда двигать дальше - а распутье большое - тасклист == 100500 тасков)
1
|
||
|
place status here
3192 / 2227 / 640
Регистрация: 20.07.2013
Сообщений: 6,026
|
|
| 28.02.2025, 18:43 | |
|
Royal_X, да пробовал я через битмап, не помогает (про это уже говорил).
Суть алгоритма еще в том, что может быть несколько итераций на каждую точку (такой принцип "фрактальной рекурсии"). Я выше ссылку на другую подобную программу кидал, там выводится картинка целиком, окно небольшое, но все равно далеко не мгновенно вывод происходит. Так что дело ясное, что дело темное. Тут, видимо, нужно делать с нуля и вникая во все детали. И не факт, что это поможет. Пока так. Будет если желание - займусь (может быть). P.S.: либо попробуй сам сделать (если интересно).
0
|
|
|
6279 / 3003 / 1051
Регистрация: 01.06.2021
Сообщений: 11,252
|
||
| 28.02.2025, 19:07 | ||
|
А потом переименовывал куски рандомно в Total Commander. Потом вообще, начал резать в Wolfram Mathematica))) которая уже давно не система компьютерной алгебры общего назначения, а научный универсальный инструмент, который умеет делать всё что угодно. Смешно, что ни Photoshop, ни Gimp не располагают быстрым методом для обрезки, только с танцами с бубном. А вот Wolfram Mathematica вычисляет, как правильно резать, режет одной командой, а потом достаточно просто экспортирует изображения под рандомными именами.
0
|
||
| 28.02.2025, 19:24 | |
|
Не по теме: Royal_X, у меня те твои программы, что "заточены" под Win 10+, не работают на 7-ке. Так что "хнык-хнык" (смайлик).
0
|
|
| 28.02.2025, 19:24 | |
|
Решение матричных игр. Есть у кого такая программа написанная уже... Запуск приложений(старых игр) в оконном режиме Алгоритм календаря игр (например в футболе)
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Взрослые отношения, и почему они не получаются
kumehtar 09.06.2026
Когда в детстве ребёнок не получает от родителей чего-то важного, он лишается не просто приятных переживаний, а основы для формирования определённых внутренних качеств и навыков. Если ребёнок не. . .
|
[golang] Worker Pool
alhaos 09.06.2026
Worker Pool
Worker Pool — паттерн конкурентной обработки задач в Go.
Суть: фиксированное количество горутин-воркеров читают задачи из общего канала
и пишут результаты в общий канал результатов. . . .
|
[golang] Pipeline
alhaos 08.06.2026
Pipeline
Pipeline — паттерн конкурентной обработки данных в Go.
Суть: данные проходят через цепочку независимых стадий, каждая из которых работает в своей горутине и общается с соседями через. . .
|
Свет внутри себя
kumehtar 07.06.2026
Пусть это будет здесь
lIs4oanZS9Y
|
|
Программа для com-порта
Uhbif79 05.06.2026
Всем привет, давно хотел изучить Qt, начинал, бросал, потом снова начинал. И сейчас вот смог написать свою первую программу.
До этого имел опыт программирования микроконтроллеров, писал прошивки на. . .
|
Транскрипция 55-минутного видео через Whisper: WhisperDesktop облажался, спас Google Colab[
anaschu 01.06.2026
Понадобилось получить текст из свежезагруженного видео на YouTube. Казалось бы, задача на пять минут. Заняла полтора часа. Делюсь опытом — может кому пригодится последовательность решений.
. . .
|
21 мат мед. Планы на развитие модели здравоСохранения
anaschu 01.06.2026
AnyLogic: план развития симуляционной модели рабочего коллектива — динамический абсентеизм, реальные данные, три сценария сравнения
Продолжаю серию постов о дискретно-событийной модели рабочего. . .
|
20. Мат мед. Абсентеизм как отдельный тип простоя
anaschu 29.05.2026
Апдейт модели: исправленные баги, абсентеизм и новые механизмы
Продолжаю развивать ранее описанную модель рабочего коллектива на AnyLogic. За последние несколько дней был проведён серьёзный. . .
|