Attention: Here be dragons
This is the latest
(unstable) version of this documentation, which may document features
not available in or compatible with released stable versions of Godot.
Checking the stable version of the documentation...
CollisionObject2D
Успадковує: Node2D < CanvasItem < Node < Object
Успадковано від: Area2D, PhysicsBody2D
Абстрактний базовий клас для об'єктів фізики 2D.
Опис
Абстрактний базовий клас для об'єктів фізики 2D. CollisionObject2D може утримувати будь-яку кількість Shape2D для зіткнення. Кожна форма повинна бути призначена * для власника *. Власники форм не мають вузлів і не з'являються в редакторі, але доступні за допомогою коду за допомогою методів shape_owner_*.
Примітка: Підтримуються тільки зіткнення між об'єктами в тій же полотні (Viewport або CanvasLayer. Поведінка зіткнень між предметами в різних полотнах не визначена.
Властивості
|
||
|
||
|
||
|
||
|
Методи
Сигнали
input_event(viewport: Node, event: InputEvent, shape_idx: int) 🔗
Викликається, коли відбувається подія введення. Потрібно, щоб input_pickable мав значення true та щоб був встановлений принаймні один біт collision_layer. Див. _input_event() для отримання детальної інформації.
mouse_entered() 🔗
Видається, коли вказівник миші потрапляє на будь-яку з фігур цього об'єкта. Вимагає, щоб input_pickable було true і принаймні один біт collision_layer було встановлено. Зауважте, що переміщення між різними фігурами у межах одного CollisionObject2D не призведе до випромінювання цього сигналу.
Примітка: Через відсутність безперервного виявлення зіткнень цей сигнал може бути виданий не в очікуваному порядку, якщо миша рухається досить швидко, а область CollisionObject2D невелика. Цей сигнал також може не видаватися, якщо інший CollisionObject2D перекриває даний CollisionObject2D.
mouse_exited() 🔗
Видається, коли вказівник миші виходить за межі всіх фігур цього об'єкта. Вимагає, щоб input_pickable було true і принаймні один біт collision_layer було встановлено. Зауважте, що переміщення між різними фігурами у межах одного CollisionObject2D не призведе до випромінювання цього сигналу.
Примітка: Через відсутність безперервного виявлення зіткнень цей сигнал може бути виданий не в очікуваному порядку, якщо миша рухається досить швидко, а область CollisionObject2D невелика. Цей сигнал також може не видаватися, якщо інший CollisionObject2D перекриває даний CollisionObject2D.
mouse_shape_entered(shape_idx: int) 🔗
Видається, коли вказівник миші потрапляє на будь-яку з фігур цього об'єкта або переходить з однієї фігури на іншу. shape_idx є індексом дочірньої фігури Shape2D, яку щойно введено. Вимагає, щоб input_pickable було true і принаймні один біт collision_layer було встановлено.
mouse_shape_exited(shape_idx: int) 🔗
Видається, коли вказівник миші виходить з будь-якої з фігур цього об'єкта. shape_idx - індекс дочірньої фігури Shape2D, з якої вийшов вказівник миші. Вимагає, щоб input_pickable було true і принаймні один біт collision_layer було встановлено.
Переліки
enum DisableMode: 🔗
DisableMode DISABLE_MODE_REMOVE = 0
Коли Node.process_mode встановлено на Node.PROCESS_MODE_DISABLED, видалити з фізичної симуляції, щоб зупинити всі фізичні взаємодії з цим CollisionObject2D.
Автоматично повторно додається до фізичної симуляції, коли Node обробляється знову.
DisableMode DISABLE_MODE_MAKE_STATIC = 1
Коли Node.process_mode встановлюється на Node. ПРОЦЕС_MODE_DISABLED, зробити статичний корпус. Не впливає Area2D. PhysicsBody2D не може впливати на сили або інші тіла під час статичної.
Автоматично встановити PhysicsBody2D назад до початкового режиму, коли Node знову обробляється.
DisableMode DISABLE_MODE_KEEP_ACTIVE = 2
Коли Node.process_mode встановлюється на Node. PROCESS_MODE_DISABLED, не впливає на фізичне моделювання.
Описи властивостей
Фізика шарів цієї CollisionObject2D є в. Об'єкти Collision можуть існувати в одному або декількох 32 різних шарів. Дивись також collision_mask.
Примітка: Об'єкт A може виявити контакт з об'єктом B тільки якщо об'єкт B знаходиться в будь-якому з шарів, які об'єкт A сканування. Див. Коллізійні шари та маски в документації для отримання додаткової інформації.
Фізика шарів цього CollisionObject2D сканування. Об'єкти Collision можуть відсканувати один або більше 32 різних шарів. Дивись також collision_layer.
Примітка: Об'єкт A може виявити контакт з об'єктом B тільки якщо об'єкт B знаходиться в будь-якому з шарів, які об'єкт A сканування. Див. Коллізійні шари та маски в документації для отримання додаткової інформації.
float collision_priority = 1.0 🔗
Пріоритет, який використовується для вирішення співвідношенні при виникненні проникнення. Чим вище пріоритет, тим нижче проникнення в об'єкт буде. Цей приклад можна використовувати для запобігання розбиття гравця за кордонами рівня.
DisableMode disable_mode = 0 🔗
void set_disable_mode(value: DisableMode)
DisableMode get_disable_mode()
Визначає поведінку у фізиці, коли Node.process_mode встановлено на Node.PROCESS_MODE_DISABLED.
Якщо true, цей об'єкт підбирається. Підбірний об'єкт може виявити вхід/зняття мишки, і якщо миша всередині неї, звітувати вхідні події. Вимагає принаймні один collision_layer трохи встановити.
Описи методів
void _input_event(viewport: Viewport, event: InputEvent, shape_idx: int) virtual 🔗
Приймає необроблені InputEvent-и. shape_idx є індексом нащадка натиснутого Shape2D. Підключіться до input_event, щоб легко обробляти ці події.
Примітка: _input_event() вимагає input_pickable, щоб бути true та принаймні один collision_layer.
void _mouse_enter() virtual 🔗
Зателефонуйте, коли миша вводить будь-яку форму цього об'єкта. true і принаймні один collision_layer трохи встановити. Зауважте, що переміщення між різними формами в одному CollisionObject2D не викликає цієї функції, яка буде викликана.
void _mouse_exit() virtual 🔗
Зателефонуйте, коли миша вказує всі форми об'єкта. true і принаймні один collision_layer трохи встановити. Зауважте, що переміщення між різними формами в одному CollisionObject2D не викликає цієї функції, яка буде викликана.
void _mouse_shape_enter(shape_idx: int) virtual 🔗
Зателефонуйте, коли миша вводить будь-яку форму цього об'єкта або пересувається з однієї форми до іншої. shape_idx - індекс дитини нововведеного Shape2D. true і принаймні один пам'ятний зіткнення_шаровий трохи назвати.
void _mouse_shape_exit(shape_idx: int) virtual 🔗
Зателефонуйте, коли миша вказує будь-яку форму цього об'єкта. shape_idx є індексом дитини виходу Shape2D. true і принаймні один пам'ятний зіткнення_шаровий трохи назвати.
int create_shape_owner(owner: Object) 🔗
Створення нового власника форми для даного об'єкта. owner_id нового власника для майбутнього посилання.
bool get_collision_layer_value(layer_number: int) const 🔗
Повертаємо, чи не вказаний шар collision_layer, враховуючи layer_number між 1 і 32.
bool get_collision_mask_value(layer_number: int) const 🔗
Повертаємо, чи не вказаний шар collision_layer, враховуючи layer_number між 1 і 32.
RID get_rid() const 🔗
Повернення об'єкта RID.
Vector2 get_shape_owner_one_way_collision_direction(owner_id: int) const 🔗
Returns the one_way_collision_direction of the shape owner identified by the given owner_id.
float get_shape_owner_one_way_collision_margin(owner_id: int) const 🔗
Повертаємо one_way_collision_margin власника форми, визначеного заданими owner_id.
PackedInt32Array get_shape_owners() 🔗
Повертаємо вашу увагу на те, що owner_id ідентифікатори. Ви можете використовувати ці ids в інших методах, які приймають owner_id як аргумент.
bool is_shape_owner_disabled(owner_id: int) const 🔗
Якщо true, власник форми та його форма вимкнено.
bool is_shape_owner_one_way_collision_enabled(owner_id: int) const 🔗
Повертає true, якщо зіткнення для власника форми, що походить від цього CollisionObject2D, не буде повідомлено про зв'язку CollisionObject2D.
void remove_shape_owner(owner_id: int) 🔗
Знімає задану форму власника.
void set_collision_layer_value(layer_number: int, value: bool) 🔗
На основі value, умикає чи вимикає зазначений шар в collision_layer, для layer_number між 1 і 32.
void set_collision_mask_value(layer_number: int, value: bool) 🔗
На основі value, умикає чи вимикає зазначений шар в collision_mask, для layer_number між 1 і 32.
int shape_find_owner(shape_index: int) const 🔗
Повертаємо owner_id даної форми.
void shape_owner_add_shape(owner_id: int, shape: Shape2D) 🔗
Додавання Shape2D до власника форми.
void shape_owner_clear_shapes(owner_id: int) 🔗
Видаліть всі форми від власника форми.
Object shape_owner_get_owner(owner_id: int) const 🔗
Повертає батьківський об'єкт власника даної форми.
Shape2D shape_owner_get_shape(owner_id: int, shape_id: int) const 🔗
Повернення Shape2D з заданим ідентифікатором від даної форми власника.
int shape_owner_get_shape_count(owner_id: int) const 🔗
Повертаємо кількість форм, вказаних форм.
int shape_owner_get_shape_index(owner_id: int, shape_id: int) const 🔗
Повертає індекс дитини Shape2D з заданим ідентифікатором від даної форми власника.
Transform2D shape_owner_get_transform(owner_id: int) const 🔗
Повертає форму власника Transform2D.
void shape_owner_remove_shape(owner_id: int, shape_id: int) 🔗
Видаліть форму з даної форми власника.
void shape_owner_set_disabled(owner_id: int, disabled: bool) 🔗
Якщо true, відключає задану форму власника.
void shape_owner_set_one_way_collision(owner_id: int, enable: bool) 🔗
Якщо включити є true, зіткнення для власника форми, що походить від цього CollisionObject2D не буде повідомлено про зв'язок CollisionObject2D.
void shape_owner_set_one_way_collision_direction(owner_id: int, direction: Vector2) 🔗
Sets the one_way_collision_direction of the shape owner identified by the given owner_id to direction.
void shape_owner_set_one_way_collision_margin(owner_id: int, margin: float) 🔗
Налаштовує one_way_collision_margin власника форми, визначеного заданими owner_id на запас пікселів.
void shape_owner_set_transform(owner_id: int, transform: Transform2D) 🔗
Налаштовує Transform2D даної форми власника.