25 / 25 / 9
Регистрация: 22.12.2013
Сообщений: 107
|
||||||||||||||||
Оформление списка (вектора) объектов, содержащих текстуры и спрайты04.03.2020, 22:57. Показов 4729. Ответов 19
Имеется класс, в котором, помимо полей с данными, имеются текстура и спрайт.
К слову, снаряд удаляется из вектора, как только выходит за пределы видимой области.
0
|
04.03.2020, 22:57 | |
Ответы с готовыми решениями:
19
SFML. Не загружаются текстуры и спрайты
Некоторые текстуры и полигоны объектов в игре не прорисовываются |
![]() 6344 / 3515 / 1428
Регистрация: 07.02.2019
Сообщений: 8,981
|
||
05.03.2020, 07:41 | ||
Более того текстура - тяжелый ресурс, по этому создавать, загружать из файла, загружать в видюху, копировать туда сюда при каждом чихе - дикость. Один раз создай и загрузи текстуру, храни её в одном месте, и передавай её хоть 100500 разным спрайтам как setTexture по ссылке.
0
|
25 / 25 / 9
Регистрация: 22.12.2013
Сообщений: 107
|
|||||
05.03.2020, 12:19 [ТС] | |||||
0
|
![]() 6344 / 3515 / 1428
Регистрация: 07.02.2019
Сообщений: 8,981
|
||||||||
05.03.2020, 12:50 | ||||||||
![]() Во вторых можно (и нужно) обойтись только разовой аллокацией, потому что вам НЕ нужно "безграничное" число спрайтов, т.к. экран не резиновый и нет необходимости поддерживать "жизнь" "пуль", которые вылетели за границы или "попали" куда то. Решение - пул объектов + вектор указателей на объекты.
0
|
25 / 25 / 9
Регистрация: 22.12.2013
Сообщений: 107
|
|||||||
05.03.2020, 13:11 [ТС] | |||||||
![]()
0
|
![]() 6344 / 3515 / 1428
Регистрация: 07.02.2019
Сообщений: 8,981
|
||||||||||
05.03.2020, 14:19 | ||||||||||
![]() Кликните здесь для просмотра всего текста
1
|
25 / 25 / 9
Регистрация: 22.12.2013
Сообщений: 107
|
|||||
05.03.2020, 20:18 [ТС] | |||||
https://ru.wikipedia.org/wiki/... 0%BE%D0%BA
0
|
25 / 25 / 9
Регистрация: 22.12.2013
Сообщений: 107
|
|||
05.03.2020, 23:03 [ТС] | |||
0
|
25 / 25 / 9
Регистрация: 22.12.2013
Сообщений: 107
|
|||
05.03.2020, 23:52 [ТС] | |||
Добавлено через 5 минут
0
|
Неэпический
![]() |
|
06.03.2020, 00:01 | |
![]() Решение
Вектор это не список, а массив - непрерывный кусок памяти. И когда вставляется новый элемент, а этот кусок закончился, то выделяется новый, больший по размеру кусок, и в него переносятся данные. Старый кусмян удаляется. Можете реализовать подобное без перевыделения? Если хотите, можете сделать резерв памяти для вектора, чтобы точно места хватило, но если вдруг не хватит, то будет перераспределение. Если можете обеспечить гарантию отсутствия перераспределения памяти, то можно и в векторе хранить.
Добавлено через 3 минуты player_shells[player_shells.size() - 1] для доступа к последнему элементу можно использовать player_shells.back() Но всё равно не надо одну и ту же текстуру по сто раз загружать.
2
|
25 / 25 / 9
Регистрация: 22.12.2013
Сообщений: 107
|
|||||
06.03.2020, 00:11 [ТС] | |||||
Добавлено через 2 минуты ![]()
0
|
![]() 6344 / 3515 / 1428
Регистрация: 07.02.2019
Сообщений: 8,981
|
|||
06.03.2020, 00:33 | |||
![]() РешениеНе по теме:
2) система выделяет в памяти буфер, и копирует туда файл с диска 3) ваша программа читает с того буффера в свой буфер, попутно конвертируя во внутренний формат 4) затем отправляет это openGL(там аллоцируктся свой буфер в памяти) 5) затем openGL отдает это видеокарте, и она(драйвер) загружает это в свою память(хорошо если через DMI) И вы всю эту прелесть хотите делать для каждой пули каждый кадр?
1
|
25 / 25 / 9
Регистрация: 22.12.2013
Сообщений: 107
|
|||
06.03.2020, 00:41 [ТС] | |||
0
|
![]() 6344 / 3515 / 1428
Регистрация: 07.02.2019
Сообщений: 8,981
|
||
06.03.2020, 01:04 | ||
Я догадываюсь, что дело в анимации. Если так, то делается это следующим образом: Пусть есть набор текстур с кадрами анимации(10 шт, например, хотя для этих целей использую одну texture map). Вы загружаете эти текстуры(10) один раз в одном экземпляре. У вас может быть 100500 спрайтов. Для каждого спрайта, в зависимости от кадра его анимации, вы делаете sprite.SetTexture(textureN); (или sprite.SetTextureRect(frame) в случае с texture map). И всё, текстурки спокойно лежат водном месте, а конвейер просто рисует очередной прямоугольник в очередном месте экрана.
0
|
Неэпический
![]() |
||
06.03.2020, 05:50 | ||
![]() Решение
Я ж говорю, разберитесь со структурами данных. zayats80888, наверное, бесполезно. ТС уже уверовал.
1
|
25 / 25 / 9
Регистрация: 22.12.2013
Сообщений: 107
|
|||||
06.03.2020, 11:12 [ТС] | |||||
Добавлено через 51 минуту
0
|
06.03.2020, 11:12 | |
Помогаю со студенческими работами здесь
20
Оформление нумерованного списка Оформление списка записей Определить в классе статическую компоненту - указатель на начало связанного списка объектов и функцию просмотра списка Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
![]() |
||||
Unity 4D
GameUnited 13.06.2025
Четырехмерное пространство. . . Звучит как что-то из научной фантастики, правда? Однако для меня, как разработчика со стажем в игровой индустрии, четвертое измерение давно перестало быть абстракцией из. . .
|
SSE (Server-Sent Events) в ASP.NET Core и .NET 10
UnmanagedCoder 13.06.2025
Кажется, Microsoft снова подкинула нам интересную фичу в новой версии фреймворка. Работая с превью . NET 10, я наткнулся на нативную поддержку Server-Sent Events (SSE) в ASP. NET Core Minimal APIs. Эта. . .
|
С днём независимости России!
Hrethgir 13.06.2025
Решил побеседовать, с утра праздничного дня, с LM о завоеваниях. То что она написала о народе, представителем которого я являюсь сам сначала возмутило меня, но дальше только смешило. Это чисто. . .
|
Лето вокруг.
kumehtar 13.06.2025
Лето вокруг.
Наполненное бурями и ураганами событий. На фоне магии Жизни, священной и вечной, неумелой рукой человека рисуется панорама душевного непокоя.
Странные серые краски проникают и. . .
|
Популярные LM модели ориентированы на увеличение затрат ресурсов пользователями сгенерированного кода (грязь -заслуги чистоплюев).
Hrethgir 12.06.2025
Вообще обратил внимание, что они генерируют код (впрочем так-же ориентированы разработчики чипов даже), чтобы пользователь их использующий уходил в тот или иной убыток. Это достаточно опытные модели,. . .
|
Топ10 библиотек C для квантовых вычислений
bytestream 12.06.2025
Квантовые вычисления - это та область, где теория встречается с практикой на границе наших знаний о физике. Пока большая часть шума вокруг квантовых компьютеров крутится вокруг языков высокого уровня. . .
|
Dispose и Finalize в C#
stackOverflow 12.06.2025
Работая с C# больше десяти лет, я снова и снова наблюдаю одну и ту же историю: разработчики наивно полагаются на сборщик мусора, как на волшебную палочку, которая решит все проблемы с памятью. Да,. . .
|
Повышаем производительность игры на Unity 6 с GPU Resident Drawer
GameUnited 11.06.2025
Недавно копался в новых фичах Unity 6 и наткнулся на GPU Resident Drawer - штуку, которая заставила меня присвистнуть от удивления. По сути, это внутренний механизм рендеринга, который автоматически. . .
|
Множества в Python
py-thonny 11.06.2025
В Python существует множество структур данных, но иногда я сталкиваюсь с задачами, где ни списки, ни словари не дают оптимального решения. Часто это происходит, когда мне нужно быстро проверять. . .
|
Работа с ccache/sccache в рамках C++
Loafer 11.06.2025
Утилиты ccache и sccache занимаются тем, что кешируют промежуточные результаты компиляции, таким образом ускоряя последующие компиляции проекта. Это означает, что если проект будет компилироваться. . .
|