Статья Автор: Омарбек Нұр-Мұхаммед

Теория

Класс Rect

Әрбір ойында әрбір объект үшін белгілі бір шекаралар (границы) қажет. Бұл шекаралар – объектінің экранда алатын кеңістігін анықтайды. Мұндай шекаралар ойын барысында объектілердің бір-бірімен әрекеттесуі немесе соқтығысуы үшін өте маңызды.

Бұл шекараларсыз ойын ешқашан қай объект қай жерде екенін және олардың соқтығысқанын түсіне алмайды. Сондықтан, шекараларды анықтау және оларды тексеру – кез келген ойындағы маңызды процесс.

Неліктен Rect маңызды?

  • Объектілердің орналасуын және өлшемін анықтайды.
  • Объектілердің бір-бірімен соқтығысуын анықтау үшін қолданылады.
  • Қозғалыс кезінде экраннан шықпауды бақылау үшін қажет.

Объект Rect

Rect объектісі — бұл объектіні қоршап тұратын және оның шекарасын анықтайтын тік төртбұрыш.

Белгіленген тік төртбұрыштың ішінде бос кеңістік бар (шекара объектінің пішінін толық қайталамайды). Бұл – қабылдауға тура келетін дәлсіздік.

Rect объектісі көрінбейді және ол соқтығысуларды анықтау үшін қолданылады.

 

Rect объектінің қасиеттері

Rect объектісінде бірнеше қасиет бар, оларды жылжыту үшін пайдалануға болады.

Каждому свойству можно присвоить новое значение. Изменение значения ширины или высоты изменяет размер прямоугольника, все остальные изменения перемещают прямоугольник.

 

 

Rect объектінің әдістері

1. Көшіру және жылжыту

  • .copy() – Жаңа тік төртбұрышты қайтарады, ол бастапқы объектінің позициясы мен өлшемін қайталайды.
  • .move(x, y) – Көрсетілген қашықтыққа жылжытылған жаңа тік төртбұрышты қайтарады.
  • .move_ip(x, y) – Алдыңғы әдістен айырмашылығы, өзгеріс тікелей объектінің өзіне қолданылады.
  • .update(left, top, width, height) – Тік төртбұрыштың орналасуын және өлшемін жаңартады.

2. Соқтығысуды тексеру

  • .collidepoint(x, y) – Егер берілген нүкте тік төртбұрыштың ішінде болса, True қайтарады.
  • .colliderect(Rect) – Егер екі тік төртбұрыштың кез келген бөлігі бір-бірімен қиылысса, True қайтарады.
  • .collidelist(list) – Егер тік төртбұрыш тізімдегі кез келген тік төртбұрышпен қиылысса, оның индексін қайтарады. Әйтпесе, -1.
  • .collidedict(dict) – Егер тік төртбұрыш сөздіктегі кез келген тік төртбұрышпен қиылысса, тиісті кілт пен мәнді қайтарады.

3. Барлық соқтығыстарды тексеру

  • .collidelistall(list) – Тік төртбұрышпен қиылысқан барлық тік төртбұрыштардың индекстерінің тізімін қайтарады.
  • .collidedictall(dict) – Тік төртбұрышпен қиылысқан барлық сөздік элементтерінің тізімін қайтарады.

📌 Мысал


rect1 = pygame.Rect(50, 50, 100, 100)
rect2 = pygame.Rect(80, 80, 100, 100)

# Егер екі тік төртбұрыш соқтығысса
if rect1.colliderect(rect2):
    print("Соқтығысу анықталды!")

Бұл әдістер объектілердің өзара әрекеттесуін оңай басқаруға мүмкіндік береді, әсіресе ойындардағы соқтығыстарды тексеру үшін пайдалы.

Пропустить Навигационные Ссылки.
Чтобы оставить комментарий нужна авторизация
Печать