Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ///----------------------------------------------///
- /// User Event 0 ///
- ///----------------------------------------------///
- /// @description FollowObject
- var _targetExists = instance_exists(cameraFollowTarget);
- if (_targetExists)
- {
- targetX = cameraFollowTarget.x;
- targetY = cameraFollowTarget.y;
- CalculateCameraDelayMovement();
- }
- ///----------------------------------------------///
- /// User Event 1 ///
- ///----------------------------------------------///
- /// @description FollowBorder
- switch (global.CurrentInput)
- {
- case InputMethod.KeyboardMouse:
- var _borderStartMargin = 0.35;
- var _borderEndMargin = 1 - _borderStartMargin;
- var _borderStartX = cameraX + (cameraWidth * _borderStartMargin);
- var _borderStartY = cameraY + (cameraHeight * _borderStartMargin);
- var _borderEndX = cameraX + (cameraWidth * _borderEndMargin);
- var _borderEndY = cameraY + (cameraHeight * _borderEndMargin);
- var _isInsideBorder = point_in_rectangle(mouse_x, mouse_y, _borderStartX, _borderStartY, _borderEndX, _borderEndY);
- if (!_isInsideBorder)
- {
- var _lerpAlpha = 0.01;
- cameraX = lerp(cameraX, mouse_x - cameraOriginX, _lerpAlpha);
- cameraY = lerp(cameraY, mouse_y - cameraOriginY, _lerpAlpha);
- }
- else
- {
- ExecuteMoveWithKeyboard;
- }
- break;
- case InputMethod.Gamepad:
- ExecuteMoveWithGamepad;
- break;
- }
- ///----------------------------------------------///
- /// User Event 2 ///
- ///----------------------------------------------///
- /// @description FollowPointPeek
- var _distanceMax = 190;
- var _startPointX = cameraFollowTarget.x;
- var _startPointY = cameraFollowTarget.y - cameraFollowTarget.offsetY - cameraFollowTarget.z;
- switch (global.CurrentInput)
- {
- case InputMethod.KeyboardMouse:
- var _direction = point_direction(_startPointX, _startPointY, mouse_x, mouse_y);
- var _aimDistance = point_distance(_startPointX, _startPointY, mouse_x, mouse_y);
- var _distanceAlpha = min(_aimDistance / _distanceMax, 1);
- break;
- case InputMethod.Gamepad:
- var _axisH = gamepad_axis_value(global.ActiveGamepad, gp_axisrh);
- var _axisV = gamepad_axis_value(global.ActiveGamepad, gp_axisrv);
- var _direction = point_direction(0, 0, _axisH, _axisV);
- var _distanceAlpha = min(point_distance(0, 0, _axisH, _axisV), 1);
- break;
- }
- var _distance = lerp(0, _distanceMax, _distanceAlpha);
- var _endPointX = _startPointX + lengthdir_x(_distance, _direction)
- var _endPointY = _startPointY + lengthdir_y(_distance, _direction)
- targetX = lerp(_startPointX, _endPointX, 0.2);
- targetY = lerp(_startPointY, _endPointY, 0.2);
- CalculateCameraDelayMovement();
- ///----------------------------------------------///
- /// User Event 3 ///
- ///----------------------------------------------///
- /// @description FollowDrag
- switch (global.CurrentInput)
- {
- case InputMethod.KeyboardMouse:
- var _mouseClick = mouse_check_button(mb_right);
- var _mouseX = display_mouse_get_x();
- var _mouseY = display_mouse_get_y();
- if (_mouseClick)
- {
- cameraX += (mousePreviousX - _mouseX) * cameraDragSpeed;
- cameraY += (mousePreviousY - _mouseY) * cameraDragSpeed;
- }
- else
- {
- ExecuteMoveWithKeyboard;
- }
- mousePreviousX = _mouseX;
- mousePreviousY = _mouseY;
- break;
- case InputMethod.Gamepad:
- ExecuteMoveWithGamepad;
- break;
- }
- ///----------------------------------------------///
- /// User Event 4 ///
- ///----------------------------------------------///
- /// @description MoveToTarget
- MoveCameraToPoint(cameraSpeed);
- ///----------------------------------------------///
- /// User Event 5 ///
- ///----------------------------------------------///
- /// @description MoveToFollowObject
- var _targetExists = instance_exists(cameraFollowTarget);
- if (_targetExists)
- {
- targetX = cameraFollowTarget.x;
- targetY = cameraFollowTarget.y;
- MoveCameraToPoint(cameraSpeed);
- var _distance = point_distance(cameraX, cameraY, targetX - cameraOriginX, targetY - cameraOriginY);
- if (_distance < 1)
- {
- cameraMode = CameraMode.FollowObject;
- }
- }
- ///----------------------------------------------///
- /// User Event 6 ///
- ///----------------------------------------------///
- /// @description MoveWithGamepad
- var _axisH = gamepad_axis_value(global.ActiveGamepad, gp_axisrh);
- var _axisV = gamepad_axis_value(global.ActiveGamepad, gp_axisrv);
- var _direction = point_direction(0, 0, _axisH, _axisV);
- var _lerpAlpha = min(point_distance(0, 0, _axisH, _axisV), 1);
- var _speed = lerp(0, cameraButtonMoveSpeed, _lerpAlpha);
- cameraX += lengthdir_x(_speed, _direction);
- cameraY += lengthdir_y(_speed, _direction);
- ///----------------------------------------------///
- /// User Event 7 ///
- ///----------------------------------------------///
- /// @description MoveWithKeyboard
- var _directionX = obj_gameManager.keyMoveRight - obj_gameManager.keyMoveLeft;
- var _directionY = obj_gameManager.keyMoveDown - obj_gameManager.keyMoveUp;
- if (_directionX != 0 || _directionY != 0)
- {
- var _direction = point_direction(0, 0, _directionX, _directionY);
- var _speedX = lengthdir_x(cameraButtonMoveSpeed, _direction);
- var _speedY = lengthdir_y(cameraButtonMoveSpeed, _direction);
- cameraX += _speedX;
- cameraY += _speedY;
- }
- ///----------------------------------------------///
- /// User Event 8 ///
- ///----------------------------------------------///
- /// @description ClampCameraPosition
- if (clampToBorders)
- {
- cameraX = clamp(cameraX, 0, room_width - cameraWidth);
- cameraY = clamp(cameraY, 0, room_height - cameraHeight);
- }
- ///----------------------------------------------///
- /// User Event 9 ///
- ///----------------------------------------------///
- /// @description CameraShaker
- // Private parameters
- var _cameraShakePower = 5;
- var _cameraShakeDrop = 0.1;
- var _cameraAngularShakePower = 0.5;
- // Shake range calculations
- var _shakeRange = power(cameraShakeValue, 2) * _cameraShakePower;
- // Add _shakeRange to camera position
- cameraX += random_range(-_shakeRange, _shakeRange);
- cameraY += random_range(-_shakeRange, _shakeRange);
- // Chanege view angle to shake camera angle
- if angularShakeEnabled
- {
- camera_set_view_angle(mainCamera, random_range(-_shakeRange, _shakeRange) * _cameraAngularShakePower);
- }
- // Decrease shake value
- if cameraShakeValue > 0
- {
- cameraShakeValue = max(cameraShakeValue - _cameraShakeDrop, 0);
- }
Advertisement
Add Comment
Please, Sign In to add comment