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...
Rect2i
A 2D вісь вирівнюється за допомогою цілих координат.
Опис
Вбудований тип Variant Rect2i представляє прямокутник, вирівняний по осях, у двовимірному просторі, використовуючи цілочисельні координати. Він визначається його position та size, які є Vector2i. Оскільки він не обертається, його часто використовують для швидких перевірок перекриття (див. intercepts()).
Щодо координат з плаваючою комою див. Rect2.
Примітка: Від'ємні значення для розміру елемента не підтримуються. З від'ємним розміром більшість методів Rect2i працюють неправильно. Використовуйте abs(), щоб отримати еквівалентний Rect2i з невід'ємним розміром.
Примітка: У булевому контексті Rect2i оцінюється як false, якщо обидва position та size дорівнюють нулю (дорівнюють Vector2i.ZERO). В іншому випадку він завжди оцінюється як true.
Примітка
Існують значні відмінності при використанні цього API із С#. Більше інформації: ref:doc_c_sharp_differences.
Посібники
Властивості
|
||
|
||
|
Конструктори
Rect2i() |
|
Методи
abs() const |
|
get_area() const |
|
get_center() const |
|
grow_individual(left: int, top: int, right: int, bottom: int) const |
|
has_area() const |
|
intersection(b: Rect2i) const |
|
intersects(b: Rect2i) const |
|
Оператори
operator !=(right: Rect2i) |
|
operator ==(right: Rect2i) |
Описи властивостей
Vector2i end = Vector2i(0, 0) 🔗
Точка закінчення. Це, як правило, нижній кут прямокутника, і еквівалентно позиція + розмір. Налаштування цієї точки впливає на size.
Vector2i position = Vector2i(0, 0) 🔗
Точка походження. Зазвичай верхній лівий кут прямокутника.
Vector2i size = Vector2i(0, 0) 🔗
Ширина та висота прямокутника, починаючи з position. Встановлення цього значення також впливає на точку end.
Примітка: Рекомендується встановлювати ширину та висоту на невід'ємні значення, оскільки більшість методів у Godot припускають, що position – це верхній лівий кут, а end – нижній правий кут. Щоб отримати еквівалентний прямокутник з невід'ємним розміром, використовуйте abs().
Описи конструкторів
Конструює Rect2i з його position і size встановлено на Vector2i.ZERO.
Rect2i як копія даної Rect2i.
Створює Rect2i з Rect2. Координати з плаваючою комою скорочуються.
Rect2i Rect2i(position: Vector2i, size: Vector2i)
Constructs a Rect2i by position і size.
Rect2i Rect2i(x: int, y: int, width: int, height: int)
Constructs a Rect2i шляхом налаштування його position до (x, y), а також його size до (width, height).
Описи методів
Повертає Rect2i, еквівалентний цьому прямокутнику, з його шириною та висотою, зміненими на невід’ємні значення, а його position — верхнім лівим кутом прямокутника.
var rect = Rect2i(25, 25, -100, -50)
var absolute = rect.abs() # absolute це Rect2i(-75, -25, 100, 50)
var rect = new Rect2I(25, 25, -100, -50);
var absolute = rect.Abs(); // абсолютним є Rect2I(-75, -25, 100, 50)
Примітка: Рекомендується використовувати цей метод, коли size має від’ємне значення, оскільки більшість інших методів у Godot припускають, що position — це верхній лівий кут, а end — нижній правий кут.
bool encloses(b: Rect2i) const 🔗
Повертаємо true, якщо це Rect2i повністю закриває інший.
Rect2i expand(to: Vector2i) const 🔗
Повертає копію цього прямокутника, розгорнуту для вирівнювання країв із заданою точкою to, якщо необхідно.
var rect = Rect2i(0, 0, 5, 2)
rect = rect.expand(Vector2i(10, 0)) # rect це Rect2i(0, 0, 10, 2)
rect = rect.expand(Vector2i(-5, 5)) # rect це Rect2i(-5, 0, 15, 5)
var rect = new Rect2I(0, 0, 5, 2);
rect = rect.Expand(new Vector2I(10, 0)); // rect це Rect2I(0, 0, 10, 2)
rect = rect.Expand(new Vector2I(-5, 5)); // rect це Rect2I(-5, 0, 15, 5)
Повертає область прямокутника. size.x * розмір.y. Дивитися також has_area().
Повертає центральну точку прямокутника. Це так само, як позиція + (розмір / 2).
Примітка: Якщо розмір size є непарним, результат буде округлений до position.
Rect2i grow(amount: int) const 🔗
Повертає копію цього прямокутника, подовженого з усіх боків на заданий параметр amount. Натомість від’ємне значення amount зменшує прямокутник. Дивіться також grow_individual() і grow_side().
var a = Rect2i(4, 4, 8, 8).grow(4) # a is Rect2i(0, 0, 16, 16)
var b = Rect2i(0, 0, 8, 4).grow(2) # b це Rect2i(-2, -2, 12, 8)
var a = new Rect2I(4, 4, 8, 8).Grow(4); // a є Rect2I(0, 0, 16, 16)
var b = new Rect2I(0, 0, 8, 4).Grow(2); // b є Rect2I(-2, -2, 12, 8)
Rect2i grow_individual(left: int, top: int, right: int, bottom: int) const 🔗
Повертає копію цього прямокутника з його сторонами left, top, right та bottom, подовженими на задані значення. Від'ємні значення натомість зменшують сторони. Див. також grow() та grow_side().
Rect2i grow_side(side: int, amount: int) const 🔗
Повертає копію цього прямокутника з його side, розширеною на задане значення amount (див. константи Side). Від'ємне значення amount натомість зменшує прямокутник. Див. також grow() та grow_individual().
Повертає true, якщо цей прямокутник має позитивну ширину і висоту. Дивись також get_area().
bool has_point(point: Vector2i) const 🔗
Повертаємо true, якщо прямокутник містить даний point. За конвенцією точки на правих і нижніх краях not включено.
Примітка: Цей метод не надійний для Rect2i з *негативним * size. Використовуйте abs() спочатку, щоб отримати дійсний прямокутник.
Rect2i intersection(b: Rect2i) const 🔗
Повертає перетин між цим прямокутником і b. Якщо прямокутники не перетинаються, повертає порожній Rect2i.
var a = Rect2i(0, 0, 5, 10)
var b = Rect2i(2, 0, 8, 4)
var c = a.intersection(b) # c is Rect2i(2, 0, 3, 4)
var a = new Rect2I(0, 0, 5, 10);
var b = new Rect2I(2, 0, 8, 4);
var c = rect1.Intersection(rect2); // c є Rect2I(2, 0, 3, 4)
Примітка: Якщо вам потрібно лише знати, чи накладаються два прямокутники, натомість використовуйте intersects().
bool intersects(b: Rect2i) const 🔗
Повертає true, якщо цей прямокутник перекриває з прямокутником b. Виключені краї обох прямокутників.
Rect2i merge(b: Rect2i) const 🔗
Повертаємо Rect2i, який закриває як цей прямокутник, так і b по краях. Дивись також encloses().
Описи операторів
bool operator !=(right: Rect2i) 🔗
Повертаємо true, якщо position або size обох прямокутників не дорівнює.
bool operator ==(right: Rect2i) 🔗
Повертає true, якщо обидва position і size прямокутників однакові, відповідно.