Как предотвратить попадание камеры на край комнаты в GameMaker Studio

[Отказ от ответственности: в этой статье предполагается базовое понимание GameMaker Studio и ее языка сценариев GML.]

Если вы разрабатываете игру в GameMaker Studio и хотите, чтобы ваша камера не выходила за пределы комнаты, вы попали по адресу. В этой статье мы рассмотрим несколько способов предотвратить попадание камеры в край комнаты с помощью GML. Итак, приступим!

Метод 1: использование функции зажима()
Один из самых простых способов удержать камеру в пределах комнаты — использовать функцию зажима(). Вот пример фрагмента кода:

camera_x = clamp(camera_x, view_xview[0], view_xview[0] + view_wview[0]);
camera_y = clamp(camera_y, view_yview[0], view_yview[0] + view_hview[0]);

Метод 2. Использование проверок на столкновения.
Другой подход заключается в использовании проверок на столкновения между объектом камеры и объектами, граничащими с комнатой. Вот пример фрагмента кода:

if (camera_x < view_xview[0]) {
    camera_x = view_xview[0];
}
if (camera_x > view_xview[0] + view_wview[0]) {
    camera_x = view_xview[0] + view_wview[0];
}
if (camera_y < view_yview[0]) {
    camera_y = view_yview[0];
}
if (camera_y > view_yview[0] + view_hview[0]) {
    camera_y = view_yview[0] + view_hview[0];
}

Метод 3: использование экземплярных проверок положения.
Вы также можете использовать экземплярные проверки положения, чтобы камера не выходила за пределы комнаты. Вот пример фрагмента кода:

if (camera_x < view_xview[0] && !instance_position(camera_x, camera_y, obj_wall)) {
    camera_x = view_xview[0];
}
if (camera_x > view_xview[0] + view_wview[0] && !instance_position(camera_x, camera_y, obj_wall)) {
    camera_x = view_xview[0] + view_wview[0];
}
if (camera_y < view_yview[0] && !instance_position(camera_x, camera_y, obj_wall)) {
    camera_y = view_yview[0];
}
if (camera_y > view_yview[0] + view_hview[0] && !instance_position(camera_x, camera_y, obj_wall)) {
    camera_y = view_yview[0] + view_hview[0];
}

Недопущение удара камеры о край комнаты — важный аспект разработки игр. В этой статье мы рассмотрели три метода достижения этой цели с помощью GML в GameMaker Studio. Независимо от того, решите ли вы использовать функцию зажима(), проверку столкновений или проверку положения экземпляра, эти методы помогут вам удерживать камеру в пределах комнаты и обеспечат плавный игровой процесс для ваших игроков. Приятного кодирования!