Результаты поиска
| |
DivES | Дата: Понедельник, 04 Мая 2020, 18:05 | Сообщение # 121 | Тема: Помогите с приоритетом отрисовки в SFML |
заслуженный участник
Сейчас нет на сайте
| Цитата drcrack (  ) дискретно на интервалы?
 Что? (это риторический вопрос, не нужно на него отвечать)
drcrack, да говорю же, только прототип сделал рабочий. А тут как раз на форуме тема об этом, вот и решил влезть. Но я лучше пойду пока что подобру-поздорову, доделаю, а там и вернусь, вы пока что тут веселитесь. 
Цитата veeroteen (  ) прыжок это только анимация, позицию он никак не меняет, К слову, прыжок — изменение позиции в пространстве. Так что в первую очередь он именно меняет позицию, а уже потом сопровождается какой-нибудь анимацией.
Сообщение отредактировал DivES - Понедельник, 04 Мая 2020, 18:11 |
|
| |
DivES | Дата: Понедельник, 04 Мая 2020, 17:55 | Сообщение # 122 | Тема: Помогите с приоритетом отрисовки в SFML |
заслуженный участник
Сейчас нет на сайте
| veeroteen, ну да, ниже. А как должно быть? Выше, что ли? Проблема-то в чём?
|
|
| |
DivES | Дата: Понедельник, 04 Мая 2020, 17:51 | Сообщение # 123 | Тема: Помогите с приоритетом отрисовки в SFML |
заслуженный участник
Сейчас нет на сайте
| puksus4, мой подход отличается отсутствием сортировки. Вместо этого, уже на этапе рендеринга, в зависимости от слоя z координаты объекты отрисовываются, начиная от самого дальнего, заканчивая самым ближним.
|
|
| |
DivES | Дата: Понедельник, 04 Мая 2020, 17:46 | Сообщение # 124 | Тема: Помогите с приоритетом отрисовки в SFML |
заслуженный участник
Сейчас нет на сайте
| veeroteen, ну как тебе сказать.  Нет. У меня "третья координата" так же для каждого объекта. Да и как ты представляешь её общую на слой? Координатой не слой обладает, а объекты. В зависимости от этой координаты каждый объект попадает на свой слой. Объяснение, вроде бы, проще некуда!
Ну ты сам посуди, чтобы понимать, как отрисовывать объект, за или перед другим, нужно сравнивать эту "третью координату" обоих объектов. Поэтому да, для каждого объекта она необходима. Хотя, в принципе, для статичных плоскостей её можно опустить, но об этом нужно задуматься.
Цитата puksus4 (  ) Просто представляйте позицию объекта в его мировых координатах, а не в экранных. И порядок рендера определяйте из мировых. При рендере уже сдвигайте объекты куда вам надо чтоб они выглядели корректно. Честно, мне кажется, мы говорим об одном и том же подходе, просто я его объяснить не могу, в добавок добавив путаницы словом "слой"!
Сообщение отредактировал DivES - Понедельник, 04 Мая 2020, 17:47 |
|
| |
DivES | Дата: Понедельник, 04 Мая 2020, 17:34 | Сообщение # 125 | Тема: Помогите с приоритетом отрисовки в SFML |
заслуженный участник
Сейчас нет на сайте
| puksus4, переменная, которую я назвал "слоем" отвечает за очерёдность отрисовки объектов на экране. В принципе, довольно подходящее название. То есть, для фонового изображения layer_ = 5 (например), для курсора мыши — 0 (отрисовывается последним, поверх всего остального), для HUD-а — 1 (отрисовывается перед курсором мыши, то есть, перекрывает всё, кроме курсора). Я же писал, это, по сути, та же z координата, только в моём видении. 
veeroteen, ты всё постоянно усложняешь. А корень всех зол в том, что ты так и не удосужился изучить C++ (иначе слов о трёхмерном массиве не было бы).
Сообщение отредактировал DivES - Понедельник, 04 Мая 2020, 17:36 |
|
| |
DivES | Дата: Понедельник, 04 Мая 2020, 17:02 | Сообщение # 126 | Тема: Помогите с приоритетом отрисовки в SFML |
заслуженный участник
Сейчас нет на сайте
| Цитата puksus4 (  ) А вдруг вы захотите в своей схеме один из объектов слоя 2 отрисовать перед объектом слоя 1, а второй - за? Это не совсем верная формулировка. Рендер происходит именно послойно, то есть, если я захочу отрисовать объект перед другим, я изменю его слой (объекты одного слоя отрисовываются в порядке очереди, и ничто не может на неё повлиять).
Вообще да, я занимаюсь высокоуровневым программированием и на нижние уровни стараюсь не спускаться, не доставляет мне это удовольствия. 
Этой задачей буквально полчаса занимался на момент написания поста, так что, как будут новые результаты (сделаю тестовую сцену с разными высотами и несколькими слоями), — отпишусь!
|
|
| |
DivES | Дата: Понедельник, 04 Мая 2020, 14:49 | Сообщение # 127 | Тема: Помогите с приоритетом отрисовки в SFML |
заслуженный участник
Сейчас нет на сайте
| puksus4, а я так сделал: Добавил в класс текстур (спрайтов) переменную-член layer_ (аналог твоей z координаты). Нулевой слой — передний план, больше значение layer_ — дальше план (можно и наоборот, я выбрал такой вариант).
Теперь, в редакторе уровней задаём для каждой текстуры слой, располагая так, как нам нужно.
В main loop: Для объектов, которые могут перекрыть или могут быть перекрыты сравниваем y координату (а также, скорее всего, нужно будет проверять коллизию прямоугольников, пока что не проверял). Для примера, для двух объектов это может выглядеть так:
Код if (sprite0->getY() >= sprite1->getY()) { // Первый спрайт ниже по [b]y[/b] второго — смещаем на слой вверх (вперёд). sprite0->setLayer(sprite1->getLayer() - 1); } else { // Первый спрайт выше по [b]y[/b] второго — смещаем на слой вниз (назад). sprite0->setLayer(sprite1->getLayer() + 1); }
И уже при рендере:
Код for (int i = МАКСИМАЛЬНОЕ ЗНАЧЕНИЕ СЛОЯ + 1; i >= 0; i --) { // Проходимся по всем спрайтам и отрисовываем в зависимости от слоя (тут и определяется очерёдность). if (i == текущий_спрайт->getLayer()) { текущий_спрайт->render(); } }
Ещё не тестировал на большом количестве слоёв и спрайтов (и скорее всего тут есть подводные камни), но по идее, задумка рабочая. Что скажете, drcrack, puksus4, имеет право на жизнь?
|
|
| |
DivES | Дата: Воскресенье, 03 Мая 2020, 22:22 | Сообщение # 128 | Тема: Помогите с приоритетом отрисовки в SFML |
заслуженный участник
Сейчас нет на сайте
| Ну так ты же писал:
Цитата veeroteen (  ) например если координаты персонажа больше координат дерева, то персонаж отрисовывается поверх, если меньше, соответственно под деревом Всё верно, с этим и работай!
veeroteen, да ты, должно быть, шутишь? Я пять минут как вышел из Stardew...
Сообщение отредактировал DivES - Воскресенье, 03 Мая 2020, 22:23 |
|
| |
DivES | Дата: Воскресенье, 03 Мая 2020, 22:16 | Сообщение # 129 | Тема: Помогите с приоритетом отрисовки в SFML |
заслуженный участник
Сейчас нет на сайте
| veeroteen, сам только что занимался этим же. В принципе, ты своим вопросом сам себе практически ответил.
Смотри, в случае с (например):
Код background.render(); house.render(); player.render(); tree.render();
первым отрисуется фон, затем дом, потом игрок и дерево. Фон будет являться самым нижним слоем, дерево — самым верхним, дом и игрок будут между ними.
На этом моменте тебе уже должно было стать понятно, что тебе что-то предстоит сделать с очерёдностью отрисовки объектов на экране. Ну а дальше уже дело за тобой.
|
|
| |
DivES | Дата: Воскресенье, 03 Мая 2020, 20:13 | Сообщение # 130 | Тема: Создание меню |
заслуженный участник
Сейчас нет на сайте
| Цитата JesusOnExtasy88 (  ) и т.д в других обьектах последовательно А ты лёгких путей совсем не ищешь. 
Finn_Mertens, всё легко находится по запросу "fade in / fade out game maker studio". Вот, например, видео.
|
|
| |
DivES | Дата: Воскресенье, 03 Мая 2020, 17:45 | Сообщение # 131 | Тема: Вопросы по поводу издателей |
заслуженный участник
Сейчас нет на сайте
| Vad1mka526, да ты болен.
|
|
| |
DivES | Дата: Суббота, 02 Мая 2020, 23:33 | Сообщение # 132 | Тема: Что вам меньше всего нравится делать в играх? |
заслуженный участник
Сейчас нет на сайте
| Избыточность не нравится. А если отвечать на вопрос, то не нравится следить за избыточными моментами / механиками, тратить на это лишнее время.
В одной небезызвестной игре про танковые баталии, например, это экипаж. Лично меня напрягает следить за его обученностью, пересаживать с одной машины на другую, выбирать правильные перки и перевыбирать их при пересадке. Кому-то, конечно, это напротив нравится, но сам считаю слегка избыточным. Но это ещё вполне оправданный и мягкий пример.
Вообще, во многих многопользовательских играх присутствует момент избыточности. Если не говорить о киберспортивных дисциплинах (там этого не замечал). Как это выглядит? Есть основная игровая механика. Со временем появляется что-то "новое", что игроку просто необходимо, чтобы оставаться на уровне. Это "новое", как вы уже поняли, представляет замаскированную (или нет) основную игровую механику. Так, вместо получаса в день, человек тратит уже час. Вместо ста кредитов — двести. Совершенно прозрачно, для чего это разработчикам / издателю, но вот игрокам желания играть это вряд ли добавит (если ты не успел стать жертвой зависимости, конечно).
Свобода в создании персонажа в одиночных играх не нравится.
Тут всё просто: бывало, что я так и не смог начать играть саму игру, потому что "не справился" с созданием персонажа, которым я хотел бы играть. Или бросал всё и начинал заново, посередине игры осознав, что глаза у персонажа должны быть #0000fe, а не #0000ff. 
И вслед за предыдущим пунктом, отсутствие цели (выжить — не считается) в одиночных играх не нравится. Придумывать, чем себя занять или развлечь — вот что действительно бесит. Тут, я думаю, можно без комментариев.
Эти два пункта исключительно об одиночных играх. В кооперативном прохождении или в многопользовательском проекте они скорее будут плюсами.
Сообщение отредактировал DivES - Суббота, 02 Мая 2020, 23:43 |
|
| |
DivES | Дата: Суббота, 02 Мая 2020, 03:49 | Сообщение # 133 | Тема: Вопросы по поводу издателей |
заслуженный участник
Сейчас нет на сайте
| Vad1mka526, а не думал, что, создавая что-то менее трэшовое, будешь и зарабатывать больше, и опыта набираться быстрее (пусть и не быстрее, зато более качественного)?
|
|
| |
DivES | Дата: Пятница, 01 Мая 2020, 20:46 | Сообщение # 134 | Тема: Вопросы по поводу издателей |
заслуженный участник
Сейчас нет на сайте
| Vad1mka526, а зачем делать заведомо "трэш", когда можно делать что-то хорошее?
|
|
| |
DivES | Дата: Пятница, 01 Мая 2020, 04:19 | Сообщение # 135 | Тема: Вопросы по поводу издателей |
заслуженный участник
Сейчас нет на сайте
| Vad1mka526, а каким образом "трэш" может превратится в хорошую игру? Тем более силами издателя? Издатели (насколько мне известно) всего лишь занимаются издательством, может быть рекламой, но уж точно не волшебством.
|
|
| |
DivES | Дата: Четверг, 30 Апреля 2020, 21:02 | Сообщение # 136 | Тема: Ищу человека который сможет сделать 2-х минутный трейлер |
заслуженный участник
Сейчас нет на сайте
| LoneWolf06, кто-то ещё пользуется Bandicam-ами, когда есть открытый OBS?
|
|
| |
DivES | Дата: Среда, 29 Апреля 2020, 15:20 | Сообщение # 137 | Тема: Sprite_index HELP ! |
заслуженный участник
Сейчас нет на сайте
| afq, парень с анимацией разобраться не может, а ты ему про самописный движок.. И да, на Unity пишет:
Цитата Форум игроделов » Конструкторы игр и лёгкие в освоении системы разработки игр » Game Maker Studio
Цитата JesusOnExtasy88 (  ) Пропишите код пжл кто знает,а то сам я чтото не разобрался,опыта в gms2 всего полтора месяца( JesusOnExtasy88, полтора месяца — и не много (если сидеть без дела и надеяться на помощь), и не мало (если разбираться). А если будешь и дальше спрашивать код каждый раз, как не смог разобраться спустя полчаса, опыта у тебя не прибавится и разбираться внезапно не начнёшь.
|
|
| |
DivES | Дата: Суббота, 25 Апреля 2020, 22:25 | Сообщение # 138 | Тема: Отрисовка карты SFML |
заслуженный участник
Сейчас нет на сайте
| veeroteen, если говорить грубо, то при статическом выделении памяти под объект
память под него выделяется из стека, а стек по размеру ограничен. Если же выделять память динамически
Код int* arr = new int[10]; то память выделяется из оперативной памяти. Круто, не правда ли? Это отвечает на вопрос, зачем играм нужна оперативная память. Вот тебе уроки по C++. Или же вот. Урок по динамическому выделению памяти под номером 85 (по первой ссылке). Тебе рекомендую начать с первого урока (нет, правда, будет полезно!)
|
|
| |
DivES | Дата: Суббота, 25 Апреля 2020, 21:11 | Сообщение # 139 | Тема: Помогите буду рад) |
заслуженный участник
Сейчас нет на сайте
| faridunibodullo, это Java. К чему ты там пришёл-то?
|
|
| |
DivES | Дата: Суббота, 25 Апреля 2020, 20:47 | Сообщение # 140 | Тема: Отрисовка карты SFML |
заслуженный участник
Сейчас нет на сайте
| veeroteen, тебе нужно изучать основы C++, если и дальше хочешь заниматься разработкой. Ещё лучше — выбрать другой язык программирования, который более лоялен к таким уникумам, как ты.  Увеличение размера стека — это полная жесть, это просто непростительно. Ты всего-то и должен был динамически выделить память под твой массив, и не было бы никаких проблем. Но ты этого не знал. Ведь ты даже не попытался разобраться в C++. Зачем оно надо, да? Увеличу стек, и так сойдёт.
|
|
| |
|