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.

Посібники

Властивості

Vector2i

end

Vector2i(0, 0)

Vector2i

position

Vector2i(0, 0)

Vector2i

size

Vector2i(0, 0)

Конструктори

Rect2i

Rect2i()

Rect2i

Rect2i(from: Rect2i)

Rect2i

Rect2i(from: Rect2)

Rect2i

Rect2i(position: Vector2i, size: Vector2i)

Rect2i

Rect2i(x: int, y: int, width: int, height: int)

Методи

Rect2i

abs() const

bool

encloses(b: Rect2i) const

Rect2i

expand(to: Vector2i) const

int

get_area() const

Vector2i

get_center() const

Rect2i

grow(amount: int) const

Rect2i

grow_individual(left: int, top: int, right: int, bottom: int) const

Rect2i

grow_side(side: int, amount: int) const

bool

has_area() const

bool

has_point(point: Vector2i) const

Rect2i

intersection(b: Rect2i) const

bool

intersects(b: Rect2i) const

Rect2i

merge(b: Rect2i) const

Оператори

bool

operator !=(right: Rect2i)

bool

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 Rect2i() 🔗

Конструює Rect2i з його position і size встановлено на Vector2i.ZERO.


Rect2i Rect2i(from: Rect2i)

Rect2i як копія даної Rect2i.


Rect2i Rect2i(from: Rect2)

Створює 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 abs() const 🔗

Повертає Rect2i, еквівалентний цьому прямокутнику, з його шириною та висотою, зміненими на невід’ємні значення, а його position — верхнім лівим кутом прямокутника.

var rect = Rect2i(25, 25, -100, -50)
var absolute = rect.abs() # absolute це 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)

int get_area() const 🔗

Повертає область прямокутника. size.x * розмір.y. Дивитися також has_area().


Vector2i get_center() const 🔗

Повертає центральну точку прямокутника. Це так само, як позиція + (розмір / 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)

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().


bool has_area() const 🔗

Повертає 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)

Примітка: Якщо вам потрібно лише знати, чи накладаються два прямокутники, натомість використовуйте 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 прямокутників однакові, відповідно.