Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- CREATE:
- /// @description
- // Ширина и высота камеры. Не делать слишком большой.
- cam_w = 640;
- cam_h = 360;
- global.camera = camera_create_view(x, y, cam_w, cam_h);
- view_set_camera(0, global.camera);
- view_enabled = true;
- view_visible[0] = true;
- if (x <= cam_w / 2 or x >= (room_width) - cam_w / 2) x = cam_w / 2
- if (y <= cam_h / 2 or y > room_height - cam_h / 2) y = cam_h / 2
- /////////////////////////////////////////////////////////////////////////////////////////
- STEP:
- /// @description
- // Новые координаты камеры и её ширина/высота
- var cameraX = camera_get_view_x(global.camera);
- var cameraY = camera_get_view_y(global.camera);
- var cameraWidth = camera_get_view_width(global.camera);
- var cameraHeight = camera_get_view_height(global.camera);
- // obj_player - тот объект, за которым камера должна следить
- var targetX = obj_player.x - cameraWidth / 2;
- var targetY = obj_player.y - cameraHeight / 2;
- // Поддерживаем входные значения в диапазоне от 0 до размеров комнаты, чтобы камера не могла выходить за её границы.
- targetX = clamp(targetX, 0, room_width - cameraWidth);
- targetY = clamp(targetY, 0, room_height - cameraHeight);
- // Возвращаем позицию камеры. Делает передвижение плавным
- cameraX = lerp(cameraX, targetX, 0.2);
- cameraY = lerp(cameraY, targetY, 0.2);
- camera_set_view_pos(global.camera, cameraX, cameraY);
- camera_set_view_size(global.camera, cameraWidth, cameraHeight);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement