Среда, 04 Декабря 2024, 21:52

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 2
  • 1
  • 2
  • »
Результаты поиска
veeroteenДата: Понедельник, 04 Мая 2020, 18:17 | Сообщение # 1 | Тема: Помогите с приоритетом отрисовки в SFML
был не раз
Сейчас нет на сайте
DivES, прыгать можно и на месте, от этого позиция не меняется, если же мы прыгаем вперед, это уже другое дело, в таком случае мы меняем позицию игнорируя коллизию на некоторую высоту

Сообщение отредактировал veeroteen - Понедельник, 04 Мая 2020, 18:19
veeroteenДата: Понедельник, 04 Мая 2020, 18:03 | Сообщение # 2 | Тема: Помогите с приоритетом отрисовки в SFML
был не раз
Сейчас нет на сайте
puksus4, прыжок это только анимация, позицию он никак не меняет, а если и меняет, то это уже скрипт, вообщем прыжок может и не менять координат
veeroteenДата: Понедельник, 04 Мая 2020, 17:57 | Сообщение # 3 | Тема: Помогите с приоритетом отрисовки в SFML
был не раз
Сейчас нет на сайте
DivES, ну я незнаю о каком влиянии холма говорил puksus4б так что вопрос
Цитата DivES ()
Проблема-то в чём?
относится к нему
veeroteenДата: Понедельник, 04 Мая 2020, 17:54 | Сообщение # 4 | Тема: Помогите с приоритетом отрисовки в SFML
был не раз
Сейчас нет на сайте
puksus4,
дерево на координате 100 100 рисуется ниже чем по координате 200 200, о чем я и говорил, даже если мы исключим холм, все равно правило остается таким же, холм в изометрии не меняет положения камеры, ее взгляд относительно обьектов всегда один


Сообщение отредактировал veeroteen - Понедельник, 04 Мая 2020, 17:55
veeroteenДата: Понедельник, 04 Мая 2020, 17:48 | Сообщение # 5 | Тема: Помогите с приоритетом отрисовки в SFML
был не раз
Сейчас нет на сайте
Цитата puksus4 ()
Неверно, я изначально оперирую объектами, а не слоями. Просто представляйте позицию объекта в его мировых координатах, а не в экранных. И порядок рендера определяйте из мировых. При рендере уже сдвигайте объекты куда вам надо чтоб они выглядели корректно.

никто тут экранными и не оперирует, и как можно сортировать отдельно статику и динамику, если они должны ривсоваться в одном в разной последовательности в зависимости от позиции, как ты себе представляешь сортировку динамики относительно массива статики вне самого массива


Сообщение отредактировал veeroteen - Понедельник, 04 Мая 2020, 17:49
veeroteenДата: Понедельник, 04 Мая 2020, 17:37 | Сообщение # 6 | Тема: Помогите с приоритетом отрисовки в SFML
был не раз
Сейчас нет на сайте
DivES, у тебя 3 координата общая на слой, а puksus4, предлагает делать эту координату на каждый обьект в слое
veeroteenДата: Понедельник, 04 Мая 2020, 17:32 | Сообщение # 7 | Тема: Помогите с приоритетом отрисовки в SFML
был не раз
Сейчас нет на сайте
puksus4, предлагаешь динамику на кадр сортировать?
veeroteenДата: Понедельник, 04 Мая 2020, 17:27 | Сообщение # 8 | Тема: Помогите с приоритетом отрисовки в SFML
был не раз
Сейчас нет на сайте
puksus4,
Цитата puksus4 ()
Эта схема
1) значительно всё упрощает
2) полностью решает вашу проблему.
Что конкретно вам не нравится?

1)упрощает? для 3 координаты надо использовать 3-х мерный массив, что само по себе неудобно
2) полностью решает проблему? ты проблему вообще читал? нет никакой проблемы отрисовывать статику, с этим ребенок справится, проблема в отрисовке динамики относительно статики, по твоей 3 координате можно только неподвижные обьекты расставлять, потому что подвижные будут постоянно двигаться внутри массива, и если 1 объект еще как то можно внести, то представьчто в твоем 3-х мерном масиве бегает 2 человечка, и как эта сортировать предлаегашь, на каждый кадр? и сколько кадров это заберет?
veeroteenДата: Понедельник, 04 Мая 2020, 17:12 | Сообщение # 9 | Тема: Помогите с приоритетом отрисовки в SFML
был не раз
Сейчас нет на сайте
puksus4, при чем тут тормозить, речь о том что не имеет смысла делать такую схему, так как она ничего совершенно не меняет при всей своей громоздкости с 3-й координатой
veeroteenДата: Понедельник, 04 Мая 2020, 17:04 | Сообщение # 10 | Тема: Помогите с приоритетом отрисовки в SFML
был не раз
Сейчас нет на сайте
puksus4,
Цитата puksus4 ()
+ засчёт одной Y координаты вы не сможите разруливать объекты по физической высоте. Тойсть до тех пор пока у вас земля - одна большая плоскость и все объекты назодятся прямо на ней - всё будет гут. Как только научите персонажа прыгать или введёте "холмы" на карте - всё поедет лесом. Если конечно сейчас речь об изометрии.

а вот это реально не понятно, у тебя в любом случае чем ниже координаты, тем ниже объект, никакие холмы ничего не изменят, у тебя в любом случае отрисовка идет от менших координат к большим
veeroteenДата: Понедельник, 04 Мая 2020, 16:56 | Сообщение # 11 | Тема: Помогите с приоритетом отрисовки в SFML
был не раз
Сейчас нет на сайте
drcrack,
Цитата puksus4 ()
1) Определяешь для каждого спрайта точку, которой этот объект крепится к земле, у дерева будет низ ствола, посередине корней, вероятно почти у всех объектов это будет точка гдето внизу спрайта.
Для простоты можно взять тупо самую нижнюю точку спрайта по игрику и среднюю по иксу. Но возможно будут странности + будет хрень если в спрайте есть путсые области сбоков.
2) Расставляешь объекты в плоскости допустим xz, где x вправо, z от экрана. За позицию объекта считаешь позицию вышеупомянутой точки в мировом пространстве.
3) перед рендером собираешь пары позиция\реф объекта. Пихаешь сюда всё подряд без разбора, и статику и динамику.
4) сортируешь по убыванию z
5) рендеришь


вроде все ясно, он предлагал внести мне актера и и неписей в один массив с обьектами, и отсортировать по позиции, но подвижные объекты , что логично двигаются , а соответственно и будут премещаться внутри массива, так как массив остсортирован по позиции, а если двигается 1 обьект посреди массива, то двигаются и все остальные
veeroteenДата: Понедельник, 04 Мая 2020, 11:14 | Сообщение # 12 | Тема: Помогите с приоритетом отрисовки в SFML
был не раз
Сейчас нет на сайте
puksus4, а теперь представь как этот массив будет постоянно двигаться в стороны по движению персонажа и неписей, даже массив 100x100 уже не выдержит двигать 1 непися, а что говорить о большем числе, так что метод сортировки подходит только для статичных обьектов
veeroteenДата: Воскресенье, 03 Мая 2020, 22:18 | Сообщение # 13 | Тема: Помогите с приоритетом отрисовки в SFML
был не раз
Сейчас нет на сайте
DivES, с очередностью статичных обьектов то все ясно, но игрок и неписи двигаются, соответственно они будут отрисовываться под и поверх деревьев в зависимости от ситуации

Добавлено (03 Мая 2020, 22:21)
---------------------------------------------
как пример




Сообщение отредактировал veeroteen - Воскресенье, 03 Мая 2020, 22:23
veeroteenДата: Воскресенье, 03 Мая 2020, 21:28 | Сообщение # 14 | Тема: Помогите с приоритетом отрисовки в SFML
был не раз
Сейчас нет на сайте
застрял на отрисовке актера относительно объектов, немного не ясно как например отрисовывать под объектом если он ниже по позиции , например если координаты персонажа больше координат дерева, то персонаж отрисовывается поверх, если меньше, соответственно под деревом, была идея разделить экран на до и после персонажа, между которыми он и будет отрисовываться, но потом понял что все равно это придется как то делать для неписей
veeroteenДата: Суббота, 25 Апреля 2020, 22:08 | Сообщение # 15 | Тема: Отрисовка карты SFML
был не раз
Сейчас нет на сайте
DivES, динамически выделить память под массив? насколько я понимаю размер стека подразумевает размер неделимой единицы, то есть компилятор не может сам разделить мой массив на 2 стека, соответственно речи о динамической памяти идти не может, а если ты и прав, то расскажи мне пожалуйста как это делается?
veeroteenДата: Суббота, 25 Апреля 2020, 20:15 | Сообщение # 16 | Тема: Отрисовка карты SFML
был не раз
Сейчас нет на сайте
Всем спасибо, все свободны, проблема решена, мальчик узнал как увеличить размер стека
Код
#pragma comment(linker, "/STACK:100000000")

если кому понадобиться
veeroteenДата: Суббота, 25 Апреля 2020, 19:57 | Сообщение # 17 | Тема: Отрисовка карты SFML
был не раз
Сейчас нет на сайте
Цитата DivES ()
veeroteen, как ты создавал этот миллион?

Код
std::vector<std::vector<int>> buff;
buff.reserve(1000000);


а вот такая штука получается если создать обычный массив
Код
int buff[1000000];



Добавлено (25 Апреля 2020, 20:02)
---------------------------------------------
realm786, этот вариант кода делает примерно то же самое, но тут как раз проблема в скорости, из xml файла очень долго доставать в сравнении с нормальным массивом, но у нормального массива есть ограничения на размер
Код

void SetMap()
  {
  
   for (int y = 0; y < MapY; y++) {
    for (int x = 0; x < MapX; x++) {

     jj = "tile" + std::to_string((int(actor.GetActorPos().x) / 32)- MapX/2 + x) + "x" + std::to_string((int(actor.GetActorPos().y) / 32)-MapY/2 + y);//имя элемента

     text = level->FirstChildElement(jj.c_str());//достаем элемент

     MapSprite.setTextureRect(sf::IntRect(0 + 32 * std::atoi(text->GetText()), 0, 32, 32));//номер тайла

     MapSprite.setPosition(
      (int((actor.GetActorPos().x) / 32) - MapX/2 + x) * 32,
      (int((actor.GetActorPos().y) / 32) - MapY/2 + y) * 32
     );

     window.draw(MapSprite);
    }
   }
  }


Сообщение отредактировал veeroteen - Суббота, 25 Апреля 2020, 22:09
veeroteenДата: Суббота, 25 Апреля 2020, 19:40 | Сообщение # 18 | Тема: Отрисовка карты SFML
был не раз
Сейчас нет на сайте
Цитата DivES ()
DivES


и это только 1 миллион обьектов, и оно уже заходит за рамки дозволеных размеров


Сообщение отредактировал veeroteen - Суббота, 25 Апреля 2020, 19:41
veeroteenДата: Суббота, 25 Апреля 2020, 17:42 | Сообщение # 19 | Тема: Отрисовка карты SFML
был не раз
Сейчас нет на сайте
Цитата DivES ()
veeroteen, так а почему бы заранее не загрузить тайлы? И потом уже обращаться к ним напрямую?

предположим я создаю массив в который записываю id тайлов по их координатам, но в конечном счете упираюсь в размер этого массива, гипотетический массив того же int 5000 x 5000 это 25000000 байтов
veeroteenДата: Суббота, 25 Апреля 2020, 17:21 | Сообщение # 20 | Тема: Отрисовка карты SFML
был не раз
Сейчас нет на сайте
Цитата DivES ()
так, а во втором варианте в чём проблема? Мне, вот, не очевидно

ну во первых идет постоянное обращение к файлу, а это дело не быстрое, то есть для того что бы отрисовать 25 тайлов, мне нужно 25 раз обратится к нему и это достаточно сильно бьет по скорости обновления кадров
  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг