Всем привет, а как в 2д приложении по координатам найти

объект находящийся на сцене максимально элегантным способом?
Я поразмыслив понял что можно перебором всех дочек главной сцены и получив их координаты уже сравнивать с тем что под курсором.
Если в кратце то мне надо удалить объект при наведении на курсор и нажав ЛКМ.

20 ответов

52 просмотра

$"предмет".get_position()

Павел-Меньщиков Автор вопроса
First Wave
$"предмет".get_position()

а я заранее то не заю сам объект, мне же надо под курсором удалить, а для этого определить сперва что там надо

Павел-Меньщиков Автор вопроса

в какпом смысле кнопкой?

Павел Меньщиков
в какпом смысле кнопкой?

Прочитай уже документацию. Сигналы, области. Описание 2д-узлов.

вообще, будет здорово, если опишешь более детально задумку или структуру. найти объект нужно относительно другого? как, например, находящийся в поле "зрения" игрока или ИИ? тогда надо брать, к примеру, Area2D, дать ему форму окружности и ловить всё, что пересекло эту окружность. более простой способ - хранить радиус "зрения", а у остальных объектов - размер. и перебирать по условию: расстояние = позиция объекта - позиция наблюдателя если расстояние < радиус зрения наблюдателя, то .... в более сложных случаях и независимо от количества измерений (2д/3д) можно : а) хранить в сцене список интересующих объектов и совершать с ним некую логику б) озаботиться т.н. разделением пространства (space partitioning), что, по сути, является специальной оптимизацией для таких механизмов, как я описал выше в) посмотреть в сторону каких-нибудь https://docs.godotengine.org/en/stable/classes/class_visibilityenabler.html

Павел-Меньщиков Автор вопроса
pinnokio
вообще, будет здорово, если опишешь более детально...

нет, тупо редактор уровня, есть 2д сцена где на левый клик ставить объект-сцену а на правый клик её удалять - задумка такая

Lucky Ook 💉4
Прочитай уже документацию. Сигналы, области. Описа...

Чтение документации разрушает магию геймдева /s А вообще - да, нужны детали. Вариантов много - рейкаст, object at position для контролов, попадание в прямоугольник, етс

Павел Меньщиков
а я заранее то не заю сам объект, мне же надо под ...

для "под курсором" есть вот такое: https://docs.godotengine.org/en/stable/tutorials/inputs/mouse_and_input_coordinates.html https://godotengine.org/qa/80524/coordinates-of-the-mouse-cursor-in-2d-editor создание "кликабельных" объектов: https://godotengine.org/qa/50469/implementing-clickable-sprites

First Wave
о, а у 3д есть радиус зрения?

есть у всего, к чему ты его приделаешь. радиус зрения - это просто float-переменная

pinnokio
есть у всего, к чему ты его приделаешь. радиус зре...

@metalmastery радиус зрения мне так то выгоднее будет наверное чем ареа?

Ihor Shalimov
Для чего?

для инстансинга астеройдов

вне контекста это звучит очень непонятно, я наверное пропустил ваши обсуждения

pinnokio
вне контекста это звучит очень непонятно, я наверн...

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

Павел-Меньщиков Автор вопроса
pinnokio
для "под курсором" есть вот такое: https://docs.g...

хорошо а как удалить сам себя? Я же определяю объект на инпут и мне надо его удалить, я так понимаю это не получится и надо как то иначе действовать

Павел Меньщиков
хорошо а как удалить сам себя? Я же определяю объе...

https://docs.godotengine.org/en/stable/classes/class_node.html#class-node-method-queue-free

Павел-Меньщиков Автор вопроса
pinnokio
https://docs.godotengine.org/en/stable/classes/cla...

оно тогда все одного класса удалит, а если удалять через free() то что очевидно не даст. Я потому и спрашивал как один объект удалить не заблоченный из под себя, через сигналы в другом методе удалить, но это не красивый способ.

Похожие вопросы

Обсуждают сегодня

Это может быть все-таки не флудвейт? у меня ботфазер принимает изменения и отображает даже что они изменились, на видео видно что он прислал якобы уже измененное описание, н...
OVERLINK
13
всем привет помогите пожалуйста используя CDN (GCP) у игроков из вьетнама загружается конфиг (размер 999 bytes) загружается 5 и более минут н а других CDN сервисах такой пробл...
Andrew Krw.
1
Добрый день. Мне посоветовали обратиться к вам в чат за помощью. Ситуация описана на скрине. Как мне сказали, мне на бота навесили флудвейт. Есть ли возможность снять его ра...
OVERLINK
7
Просто по очереди выпиливаешь на ручной маппинг? По методу за раз
Andrii Kurdiumov
7
)) может, нужно поправить? )) 2. Ребята, нам нужно, чтобы сообщения из Инстаграм приходили в ОДУ. Какое приложение посоветуете?
Alexander Sharoiko MSE / Александр Шаройко
1
Я правильно понимаю что нет способов получить список ожидающих заявок на вступление в группу с помощью бота из mtproto?
Шамиль Прилов
2
Приветствую. А не подскажете какие ограничения есть на использования api метода setMyName ? Несколько раз сменил имя бота и получил бан на 2 месяца на смену имени.
Slick Slack
8
И? Все равно глазами проверять надо каждое поле
Andrii Kurdiumov
4
Всем привет! Взялся портировать модули на 18 версию, лезет _logger.log(log_level, 'no translation language detected, skipping translation %s', frame, stack_info=True) А чт...
Max Lit
3
Ну есть у нас десяток компаний которым надо. Остальным то зачем?
Andrii Kurdiumov
4
Карта сайта