|
Каждому свое
533 / 219 / 81
Регистрация: 05.08.2013
Сообщений: 1,614
|
||||||
Как произвести клонирование объекта со всеми его компонентами?01.11.2016, 22:32. Показов 6898. Ответов 20
Метки нет (Все метки)
Добрый день, Уважаемые форумчане. Столкнулся с такой проблемой:
Есть объект Object, который содержит множество компонентов Component. Component - это просто данные, к примеру:
0
|
||||||
| 01.11.2016, 22:32 | |
|
Ответы с готовыми решениями:
20
Как обновить фрейм со всеми его компонентами?
Как сохранить содержимое IpHtmPanel со всеми компонентами? |
|
Каждому свое
533 / 219 / 81
Регистрация: 05.08.2013
Сообщений: 1,614
|
|
| 01.11.2016, 22:54 [ТС] | |
|
Конструктором копирования?
0
|
|
|
Комп_Оратор)
|
|||||||||
| 01.11.2016, 23:19 | |||||||||
|
Bretbas, как-то непонятно всё. Вот с самого начала:
PxRigidActor* _physicsActor;, это тоже данное. Но он на выделенную память смотрит? Или нет? То есть, не видно же что в этом классе клонируется.И наконец фраза:
![]() В этом случае тем не менее будет работать и конструктор копии.
0
|
|||||||||
|
Каждому свое
533 / 219 / 81
Регистрация: 05.08.2013
Сообщений: 1,614
|
||
| 02.11.2016, 10:23 [ТС] | ||
|
IGPIGP,
0
|
||
|
1936 / 1048 / 109
Регистрация: 29.03.2010
Сообщений: 3,167
|
|
| 02.11.2016, 10:31 | |
|
Конструктор копирования, ну и тут все зависит от того, какой метод копирования вы будете использовать, глубокое, ленивое и т.п. вариантов в принципе хватает.
0
|
|
|
Комп_Оратор)
|
||||
| 02.11.2016, 10:47 | ||||
|
А насчёт указателя PxRigidActor* ванговать не стану. Скорее всего нужно выделить память и скопировать туда значение по данному указателю, что даже в случае, если объект этого указателя чист от подобных указателей - не имея конструктора объекта не получится. Без хаков. Bretbas, постарайтесь переписать свой вопрос по-новому. Хотя бы для себя. Это должно помочь.
1
|
||||
|
Каждому свое
533 / 219 / 81
Регистрация: 05.08.2013
Сообщений: 1,614
|
||
| 05.11.2016, 23:40 [ТС] | ||
|
IGPIGP,
0
|
||
|
Комп_Оратор)
|
||||
| 06.11.2016, 00:41 | ||||
|
Bretbas, жизнь полна противоречий. Вот фраза:
А с указателями надо разбираться. Вы кроме того, что указатель указывает на библиотечный класс ничего не сказали. Есть ли у этого класса открытый конструктор копии, например. Поэтому разговор не сдвигается с той точки в которой остановился.
0
|
||||
|
Каждому свое
533 / 219 / 81
Регистрация: 05.08.2013
Сообщений: 1,614
|
||
| 06.11.2016, 01:16 [ТС] | ||
|
IGPIGP,
Я лучше объясню, для чего мне это нужно, может подскажете что-нибудь: Мне нужно сделать разные фабрики для объектов на уровне различных прототипов. Тоесть есть прототип объекта-снаряд. У него есть различные компоненты-ComponentMeshFilter,ComponentConvexColli der, ComponentRigidBody и тд. Пока что он не добавлен на сцену - формально его еще нет. Как только я к примеру нажимаю кнопку "стрелять", должен создаваться и добавляться на сцену объект на основе прототипа объекта-снаряд.
0
|
||
|
Комп_Оратор)
|
||||
| 06.11.2016, 01:46 | ||||
|
Начнем сконца. Вот это не шутка мне кажется:
Иначе этот вопрос рушит возможность ответить. Я во всяком случае не знаю как. Далее: зы если речь о скорости создания экземпляров, то можно выделять память массивами char [N*Sizeof(T)] а потом заселять placement new например, если Вы об этом. Я гадаю, потому как далековато от понимания Вашей задачи.
0
|
||||
|
Каждому свое
533 / 219 / 81
Регистрация: 05.08.2013
Сообщений: 1,614
|
|||||||||||
| 06.11.2016, 23:13 [ТС] | |||||||||||
|
IGPIGP, В игровом движке Unity3D есть так называемые "префабы". Префаб выступает в роли шаблона для создания экземпляров хранимого объекта в сцене. Вот мне нужно создать что то типо такого же. Чтобы я мог организовать игровой объект, а потом по мере необходимости мог создавать экземпляры(клоны) этого объекта и помещать их на сцену.
Что то типо такого:
0
|
|||||||||||
|
Комп_Оратор)
|
||||
| 07.11.2016, 09:14 | ||||
|
Bretbas,
Так создайте Это всё равно, что спросить, а не лучше ли обратиться с вопросом в разделе игростроения. Там небось, и подраздел D3D есть и мужики, которые на этом Unit'e не одну собаку съели. Трехмерную. Клонированную, конечно. ![]() Иначе, боюсь, Вам в таком духе, придётся долго объяснять суть вопроса.
0
|
||||
|
Каждому свое
533 / 219 / 81
Регистрация: 05.08.2013
Сообщений: 1,614
|
|
| 07.11.2016, 22:38 [ТС] | |
|
IGPIGP, е моё. Да я же уже вроде все объяснил. Мог вопрос и на gamedev'е задать, но задал здесь, какая разница? Вопрос общий. Нужно правильно склонировать объект. Unity3d я привёл как пример, можно его вообще не рассматривать. Какая разница какой жизненный цикл у объекта? Если Вам это нужно, то менеджер создаёт и разрушает объект. Тачкуется он по имени. Два объекта с одним и тем же именем на сцену поставить нельзя. По крайней мере я так сделал, и меня это устраивает. Теперь клоны клоны клоны:-) как?)
0
|
|
|
Комп_Оратор)
|
|||
| 07.11.2016, 22:52 | |||
Эти объекты передаются только по ссылкам/указателям, кстати?
0
|
|||
|
Каждому свое
533 / 219 / 81
Регистрация: 05.08.2013
Сообщений: 1,614
|
|||
| 08.11.2016, 15:11 [ТС] | |||
|
IGPIGP,
0
|
|||
|
Комп_Оратор)
|
||
| 08.11.2016, 16:22 | ||
|
Как я понял, объект добавленный на сцену, может существовать долго и действовать долго. Я имею ввиду, что снаряд который один раз выпущен и взорван, можно не удалять, а управлять его видимостью. То есть, стрелять повторно. Если n выстрелов могут быть одновременными, то нужно n - одинаковых объектов. А снаряды для разных пушек (калибр, дальность, унитарность, оск/фуг и пр.) должны иметь разные ![]() То есть, можно заранее заготовить весь арсенал оружия, а можно по мере надобности. От этого и будет зависеть ход дальнейших действий.
0
|
||
|
Каждому свое
533 / 219 / 81
Регистрация: 05.08.2013
Сообщений: 1,614
|
|||
| 08.11.2016, 20:43 [ТС] | |||
|
IGPIGP,
0
|
|||
|
Комп_Оратор)
|
||
| 08.11.2016, 21:04 | ||
|
0
|
||
|
Каждому свое
533 / 219 / 81
Регистрация: 05.08.2013
Сообщений: 1,614
|
||
| 08.11.2016, 21:07 [ТС] | ||
|
IGPIGP, даже если посудить, что объектов(пусть танков), которые могут стрелять этими снарядами будет много на сцене, и все они смогут стрелять одновременно и неоднократно, то я не вижу смысла держать в памяти лишние объекты, которых пока что нет, и может не быть
![]()
Я пишу движок с Компонентной Системой Сущностей(ECS), для ученических целей
0
|
||
| 08.11.2016, 21:07 | |
|
Помогаю со студенческими работами здесь
20
Как полностью удалить форму со всеми компонентами на ней и очистить память кодом Клонирование Windows 7 (со всеми программами) на разное железо Копия формы со всеми компонентами Копия формы со всеми компонентами и кодом Клонирование объекта Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
|
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога
Финальные проекты на Си и на C++:
hello-sdl3-c. zip
hello-sdl3-cpp. zip
Результат:
|
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога
MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
|
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд.
Даже если у вас. . .
|
|
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает
монорепозиторий в котором находятся все исходники.
При создании нового решения, мы просто добавляем нужные проекты
и имеем. . .
|
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение:
В этой книге («Подход, основанный на вариантах использования») Ивар утверждает,
что архитектура программного обеспечения — это
структуры,. . .
|
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога
Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
|
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога
Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip
На первой гифке отладочные линии отключены, а на второй включены:. . .
|