Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class Camera
- {
- private Player player;
- private float horizontalDistanceFromPlayer;
- private float verticalDistanceFromPlayer;
- private Vector3 eye;
- private Vector3 center;
- private Vector3 up;
- private float[] viewMatrix;
- private float[] rotationMatrix;
- private float[] translationMatrix;
- public Camera(Player player)
- {
- this.player = player;
- horizontalDistanceFromPlayer = 1.25f;
- verticalDistanceFromPlayer = 0.75f;
- up = new Vector3(0, 1, 0);
- center = player.getWorldMidPoint();
- center.y += player.getPlayerRadius().y * 2;
- eye = new Vector3(center.x, center.y + verticalDistanceFromPlayer, center.z + horizontalDistanceFromPlayer);
- viewMatrix = new float[16];
- rotationMatrix = new float[16];
- translationMatrix = new float[16];
- }
- public float[] getViewMatrix()
- {
- Matrix.setLookAtM(viewMatrix, 0, eye.x, eye.y, eye.z, center.x, center.y, center.z, up.x, up.y, up.z);
- return viewMatrix;
- }
- public void updateCamera()
- {
- center = player.getWorldMidPoint();
- center.y += player.getPlayerRadius().y * 2;
- float angle = -player.getIncrementalRotationAngle();
- float c = (float)Math.cos(Math.toRadians(angle));
- float s = (float)Math.sin(Math.toRadians(angle));
- eye.x = center.x + (s*horizontalDistanceFromPlayer);
- eye.y = center.y + verticalDistanceFromPlayer;
- eye.z = center.z + (c*horizontalDistanceFromPlayer);
- if(player.getPlayerRunningStatus())
- {
- eye.addVector(player.getPlayerTimeBasedVelocity());
- }
- }
- public Vector3 getCameraEyeVector()
- {
- return new Vector3(eye.x, eye.y, eye.z);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement