UtoECat писал(а):
Как и способа поправить...Этот топик читают: Гость
Ответов: 2236
Рейтинг: 676
|
|||
Способ очень простой: навести порядок в схеме. |
|||
карма: 11 |
|
Ответов: 167
Рейтинг: 7
|
|||
sla8a писал(а): навести порядок в схеме.я не думаю, что непорядок в одном контейнере это критично, тем более - это пока что "черновая версия" и схему я в первый пост эту не добавил. Так что порядком заняться надо уже после того, как разберёмся с проблемой. --- Добавлено в 2020-02-06 10:17:01 Я НАШЕЛ ПРИЧИНУ! УРА! [flood]и она была не в беспорядке [/flood] Я точно не знаю как это работает, но всё же я усвоил, что регионы хранить в MT не следует. Можно было попробовать хранить их, конвертировав в поток, но я решил уже упростить всё до минимума, и : allworking.jpg --- Добавлено в 2020-02-06 10:32:32 https://drive.google.com/file/d/1hSZ2NHk_rwfIMFWsENc440WUloV5iYaz/view?usp=sharingEXE&SHA INDEV 0.4 https://drive.google.com/file/d/1OU3zcyUC36MEqas5n4o5VivrqQq7fLSY/view?usp=sharing 0.4.1 Добавил возможность ставить разноцветные блоки (И чутку убрался в схеме). Оптимизация установки блоков добавлена в следующей INDEV (0.4.1) [flood](Там ещё пиксельартик есть )[/flood] --- Добавлено в 2020-02-06 10:34:00 sla8a писал(а): а с позицией x и y будет меньше проблемВсё-таки сжатые координаты удобнее хранить и использовать . Редактировалось 5 раз(а), последний 2020-02-06 10:51:15 |
|||
карма: 0 |
|
Ответов: 167
Рейтинг: 7
|
|||
INDEV 0.5 :
https://drive.google.com/file/d/1bhSld9HehS51o_ujKD00G01lkx96qSMQ/view?usp=sharing Нововведения -Исправление мелких ошибок -Добавление возможности поворота блоков, а так-же отключение выравнивания по сетке с помощью checkboxов -В меню внесены незначительные изменения -Добавлена возможность удаления мира, а так-же создания миров.(Изменение миров реализую позже) И вроде всё . О чем-то мог и забыть. Скриншоты screenindev1.jpg screenindev2.jpg screenindev3.jpg Редактировалось 1 раз(а), последний 2020-02-07 14:32:44 |
|||
карма: 0 |
|
Ответов: 167
Рейтинг: 7
|
|||
Новая Indev Версия!
Нововведения Добавлена возможность изменения размера блоков Добавлена возможность отключения коллизии при установке блоков (блок на блок) (только при выключенном удерживании) Ускорена отрисовка Блоки устанавливаются через отдельный поток ИЗМЕНЕНА СТРУКТУРА МИРА (Это значит, что миры старых версий не будут работать корректно!) Screenshots 0.6.1.jpg Пример отключения коллизии Пример изменения размера блоков --- Добавлено в 2020-02-19 08:57:30 Ещё один FAQ Forum Ask and Questions Q:Что делать, если блоки ставятся с большой задержкой и при этом игра виснет? A:Попытайтесь уменьшить количество блоков в вашем мире. На данный момент игра плохо оптимизирована. Так же причиной может быть повреждённый мир... Q:Что это за дичь? A:Лицензионное соглашение Q: Почему именно регионы? Чем GameEngine не по нраву ? A: Смотрите выше... UtoECat писал(а): мир будет реализован на массиве регионов, которые можно будет поворачивать, перемещать и п.р (до трансформации дело тоже может дойти ) .У регионов куча плюсов ! И я очень надеюсь, что хоть это обновление я сделаю нормально...Q: А где слаймик ? A: \-("-")-/ Q:При создании мира есть возможность выбрать его тип. Но это ничего не даёт! A: Это реализация на будущее Q: большинство кнопок ведут тебя не в магазин, а в чёрный экран с надписью магазин! Сохранение аккаунта не работает! Что это вообще за [flood](тип цензура )[/flood] A: Ира находится в стадии INDEV (In development - в разработке). Версии сырые, и в них мало-что реализовано! Но я могу с уверенностью сказать, что всё это будет реализовано в полной мере, или наполовину... Редактировалось 7 раз(а), последний 2020-02-20 02:07:27 |
|||
карма: 0 |
|
Ответов: 2236
Рейтинг: 676
|
|||
UtoECat, вы не правильно используете элементы Регионы. По тому как вы их используете можно сделать вывод что вы не понимаете что такое регион.
1. Вместо того чтобы сразу создать регион в нужной позиции (X,Y), вы его создаете в позиции по умолчанию, а потом переносите. 2. Вместо того чтобы хранить регионы в массиве регионов (RGN_Array) вы постоянно создаете каждый регион по новой (перед рисованием, коллизией и т.д.) 3. У элемента коллизия регионов (RGN_Collision) выгоднее подключить точку array к массиву регионов (см. пункт 2) и упростить схему и ускорить программу. При таком подходе даже не надейтесь на быстродействие вашей программы. UtoECat писал(а): Всё-таки сжатые координаты удобнее хранить и использоватьСхема хоть на схему стала похожа, еще бы связи распутать. |
|||
карма: 11 |
|
Ответов: 167
Рейтинг: 7
|
|||
sla8a писал(а): 1. Вместо того чтобы сразу создать регион в нужной позиции (X,Y), вы его создаете в позиции по умолчанию, а потом переносите.Согласен, тут я немного затупил sla8a писал(а): Вместо того чтобы хранить регионы в массиве регионов (RGN_Array) вы постоянно создаете каждый регион по новой (перед рисованием, коллизией и т.д.)Объясняю : я не смог придумать то, как я буду хранить id блоков и их информацию... MTMTArray - лучший на мой взгляд решение... Создаются новые регионы перед отрисовкой потому, что при попытке хранить их из точки Region в MTПоток и как следствие в MTMTМассив не вышло... Это я обязательно как-нибудь переделаю, но хранить регионы в массиве регионов не собираюсь, т.к опять же - не могу примерно даже предположить то, как мне тогда хранить данные о блоке... sla8a писал(а): 3. У элемента коллизия регионов (RGN_Collision) выгоднее подключить точку array к массиву регионов (см. пункт 2) и упростить схему и ускорить программу.Так всё и работало в начальных версиях... Сейчас всё на MTMTArray... Согласен - с быстродействием проблемки... Это я не раз ощутил... sla8a писал(а): Ну мое дело предостеречь что грабли лежат, а вы как пару раз наступите (один раз уже наступили) то может поменяете свое мнение.А что не так с этими сжатыми координатами :/ ... --- Добавлено в 2020-02-20 02:12:28 P.S: UtoECat писал(а): я не смог придумать то, как я буду хранить id блоков и их информацию...На самом деле у меня были идеи, но я не смог их реализовать... Редактировалось 1 раз(а), последний 2020-02-20 02:12:28 |
|||
карма: 0 |
|
Ответов: 2236
Рейтинг: 676
|
|||
UtoECat писал(а): я не смог придумать то, как я буду хранить id блоков и их информацию...1. Загружаете список ваших данных (мира) из файла. 2. Создаете регион и заносите его в массив регионов (RGN_Array). 3. Получаете из массива регионов только что добавленный регион (именно так, а не тот что сделали перед добавлением в массив регионов) и вместе с нужными вами данными (насколько разобрался в вашей схеме достаточно индекс рисунка и угол поворота) заносите его в MTMTArray. [регион][индекс рисунка][угол поворота] Координаты хранить в MTMTArray нет смысла, они есть в самом регионе. Перед сохранением мира сможете получить их из RGN_GetData (Данные о регионе). 4. У вас должно получится два массива с одинаковым количеством. 5. Для рисования перебираете MTMTArray, тут вам и регион и его картинка. Экономите на создании регионов. 6. Для обработки коллизии используете RGN_Array. Экономите на создании регионов и на прямую подключаете массив регионов к RGN_Collision. 7. Если удаляете регион, то удаляете по индексу из обоих массивов MTMTArray и RGN_Array. 8. Если изменяете регион, то заменяете регион по индексу в RGN_Array, получаете регион из RGN_Array и вносите измененный регион в MTMTArray. Если какой пункт не понятен спрашивайте. Редактировалось 2 раз(а), последний 2020-02-20 18:04:08 |
|||
карма: 11 |
|
Ответов: 167
Рейтинг: 7
|
|||
sla8a писал(а): Создаете регион и заносите его в массив регионов (RGN_Array).sla8a писал(а): Получаете из массива регионов только что добавленный регионsla8a писал(а): и вместе с нужными вами данными (насколько разобрался в вашей схеме достаточно индекс рисунка и угол поворота) заносите его в MTMTArrayЗачем его туда заносить, если в MTMTArray хранятся лишь данные о блоках? И, кстати, можно обойтись и без угла поворота :з. Он тоже по сути хранится в регионе... Но я не понимаю одного... Что это за мистика такая... Мол... В чём отличие перебора массива регионов и MTМассива? Там что есть какая-то оптимизация? Я думал, что от обычного перебора MTмассива для проверки столкновений и RGМассива разницы не будет :/ ... --- Добавлено в 2020-02-21 01:12:12 UtoECat писал(а): На самом деле у меня были идеи, но я не смог их реализовать... sla8a писал(а): всё твоё сообщение :зПо сути, у меня изначально была точно такая-же идея... Но я е правильно её реализовал... Да ещё и большое количество ошибок допустил, не связанных с регионами :/ . Я обязательно попробую как-нибудь это сделать... Но всё-же, пожалуйста разъясните мне, [flood]пещерному человеку[/flood], какова существенная разница между моей желаемой, и моей уже реализованной реализацией? Неужели создание региона это дейтвительно очень ресурсозатратная вешь? :/ . --- Добавлено в 2020-02-21 01:22:46 И, да, сразу спрошу на будущее... Я частенько подумывал над потимизацией... Вот у меня идея какая : что, если у меня будет не два массива (MTMTArray and RGArray), а четыре, но в поседних двух будут хранится данные и регионы только те, которые будут находится на экране (сталкиваться с регионом, соразмерным размеру DrawBoxa на котором это всё рисуется? Так как в планах у меня добавить возможность перемещения камеры... Насколько такая идея оптимальна? И хороша ли она? Или есть альтернатива, которая будет работать лучше? Редактировалось 3 раз(а), последний 2020-02-21 01:22:46 |
|||
карма: 0 |
|
Ответов: 2236
Рейтинг: 676
|
|||
UtoECat писал(а): без угла поворота :з. Он тоже по сути хранится в регионеUtoECat писал(а): Неужели создание региона это дейтвительно очень ресурсозатратная вешь?UtoECat писал(а): не два массива (MTMTArray and RGArray), а четыреВот вам два наброска. В первом вариант с хранением данных в разных массивах. А во втором варианте весь мир один регион и рисуется не перебором, а сразу. Схема 1
Редактировалось 1 раз(а), последний 2020-02-23 12:45:44 |
|||
карма: 11 |
|
Ответов: 167
Рейтинг: 7
|
|||
sla8a писал(а): ваша вторая схема|Она не до конца сохранилась sla8a писал(а): Не хранится в регионе угол поворота.Да, я уже давно закончил делать этот кошмар, и понял это Извините И, как я понял, на первой схеме что-то должно двигаться, но что, я не понял Кстати, в первом массиве всё равно придётся хранить координаты и размер региона... У меня по какой-то причине при повёрнутом регионе его координаты получаются некорректно... Поэтому пусть будет так . Что сказать... Рисоваться стало всё гораздо быстрее / sla8a писал(а): Вполне годная оптимизацияЧто-же... Раз так, то буду думать как это реализовать чуть позже, так как сейчас ещё мыслю на счёт оптимизации прочей части схемы... --- Добавлено в 2020-02-22 22:01:45 Уже понял . Случайно не заметил этот кружок --- Добавлено в 2020-02-22 22:16:06 Вот набросал схемку . Пока без оптимизации, но коллизия и рисование идёт через массив регионов https://drive.google.com/file/d/1izGDal-KSzzRz5LiMVptymP8eLJk2-5s/view?usp=sharing EXE&SHA --- Добавлено в 2020-02-22 22:20:17 sla8a писал(а): В первом вариант с хранением данных в разных массивахВы просто храните угол в одном, а идентификатор в другом массиве? :/ Мне тоже надо так сделать... --- Добавлено в 2020-02-22 22:21:52 [flood]Не спрашивайте про блок иконки HiASM . Просто было нечего делать lol.jpg Редактировалось 12 раз(а), последний 2020-02-22 22:30:59 |
|||
карма: 0 |
|
Ответов: 167
Рейтинг: 7
|
|||
Новая indev. исправлен баг с цветами. Добавлены новые блоки. Добавлены наименования блоков в списке блоков.
https://drive.google.com/file/d/1NgYxJWsd53c7vMEOtbLtB0d2u-EHuvBQ/view?usp=sharing bankkiller.jpg (новая карта с демонстрацией новых блоков) MTMTМассив будет один, и массив регионов тоже . Но в массив регионов будут добавляться только регионы, которые будут сталкиваться с регионом, равному размеру окна. А как тогда я буду получать информацию о нём? Очень просто : идентификатор элемента мтмассива, соответствующий этому блоку будет храниться в массиве чисел, и элементы этого массива будут соответствовать каждому региону в массиве регионов... Что-же... Идею придумал... А реализую её завтра . Sla8a, спасибо тебе за помощь Редактировалось 2 раз(а), последний 2020-02-23 00:26:49 |
|||
карма: 0 |
|
Ответов: 2236
Рейтинг: 676
|
|||
Вторую схему форум обрезал, получилось длинное сообщение.
Схема 2
UtoECat писал(а): Вы просто храните угол в одном, а идентификатор в другом массиве? :/ Мне тоже надо так сделать...UtoECat писал(а): У меня по какой-то причине при повёрнутом регионе его координаты получаются некорректно...Причина в том что вы переворачиваете квадрат по центру (см. Свойство Mode элемента RGN_Rotate) и получаете ромб и смещение координат X и Y. Редактировалось 1 раз(а), последний 2020-02-23 13:07:19 |
|||
карма: 11 |
|
Ответов: 167
Рейтинг: 7
|
|||
sla8a писал(а): Эти схемы наброски, а не то как надо сделать вам. Посмотрите проанализируйте и сделайте как вам будет нужно. Я не знаю вашу задумку, а лишь увидел что в вашей схеме сильно теряется производительность из за того что вы создаете регионы в цикле прорисовки.Ну я это уже понял . И у меня появилась туча идей оптимизации... Но их я буду применять как с основной оптимизацией закончу --- Добавлено в 2020-02-23 17:06:14 sla8a писал(а): Вы просто храните угол в одном, а идентификатор в другом массиве? :/ Мне тоже надо так сделать...Не... Я говорю о том, что это тоже хорошая идея оптимизации! Зачем нам при рисовании получать данные и о позиции и об угле поворота, если нам нужен лишь ID! Редактировалось 1 раз(а), последний 2020-02-23 17:06:14 |
|||
карма: 0 |
|
Ответов: 167
Рейтинг: 7
|
|||
Вот намутил что-то
1.jpg 2.jpg 3.jpg Вот теперь, когда я всё это доделаю мне придётся переводить рисование на OpenGL. И я хочу задать вопрос : есть-ли элемент, который поможет рисовать ИМЕННО РЕГИОНЫ. Т.е я хочу помимо всех обычных регионов добавить окружность... И это конечно можно реализовать через defaultные элементы, но мало-ли... Вероятно так это работать будет лучше... Редактировалось 1 раз(а), последний 2020-02-24 09:24:39 |
|||
карма: 0 |
|
Ответов: 2236
Рейтинг: 676
|
|||
UtoECat писал(а): переводить рисование на OpenGL. И я хочу задать вопрос : есть-ли элемент, который поможет рисовать ИМЕННО РЕГИОНЫВот вам старая поделка, может пригодится: 3D map Редактировалось 1 раз(а), последний 2020-02-24 15:03:59 |
|||
карма: 11 |
|