dawrehxyz icon

Untitled

dawrehxyz | PRO | 08/06/16 02:49:22 PM UTC | 0 ⭐ | 368 👁️ | Never ⏰ | []
Java |

1.79 KB

|

None

|

0 👍

/

0 👎

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);
    }
}

Comments