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 прямокутників однакові, відповідно.