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

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

20 ответов

55 просмотров

$"предмет".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() то что очевидно не даст. Я потому и спрашивал как один объект удалить не заблоченный из под себя, через сигналы в другом методе удалить, но это не красивый способ.

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

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

Добрый вечер, Пока не совсем понимаю как наладить общение между телеграм ботом и ПО для работы с сим боксом. По самому боту так понял: - Нужен некий баланс, который можно поп...
Magic
6
сделал сайт, прикрутил в боте сайт, и виджет логина. как автоматически логинить пользователя в аккаунт(телеграм), при входе с бота?
Александра Чернивецкая
5
Объясните, пожалуйста, почему компилятор ругается на использование в условии неинициализированной переменной: int x; Task.Run(async () => { x = await somefunc(); }).Wait...
Александр
5
Ребят, подскажите, пожалуйста, почему в префиксе к ассетам, которые генерируются через фильтр | theme в шаблоне, стал вдруг появляться index.php? Вот так выглядит ссылка на а...
Виталий
1
Всем привет. Ребята, подскажите, пожалуйста. у ботов есть ограничение на отправку сообщений - 30 сообщений в секунду, эти ограничения накладываются на все сообщения? или на со...
Artem Stormageddon
4
Блин, ребята, сори за тупые вопросы. А можно ли как-то открыть вебапку по нажатию на кнопку в меню(которое появляется слева, команды)?
Artem Stormageddon
3
а плаксы из-под питона умеют только в комфортных условиях что-то выдавить из себя?)
Lencore
9
Но, может, есть уже проверенная? Наши требования такие: 1. Сообщения должны приходить из Инста в CRM оду 2. Должна быть возможность подключить несколько экаунтов Инстаграм. Р...
Alexander Sharoiko MSE / Александр Шаройко
13
Это может быть все-таки не флудвейт? у меня ботфазер принимает изменения и отображает даже что они изменились, на видео видно что он прислал якобы уже измененное описание, н...
OVERLINK
13
Коллеги, может знает кто, можно ли цвет бейджа счётчика в BackendMenu менять без бубнов?
Alex Blaze
3
Карта сайта