var CAMERA_OFFSET_ANGLE = 0.0; var CAMERA_OFFSET_RADIUS = 18.0; var CAMERA_OFFSET_HEIGHT = 10.0; class PlayerCamera extends Entity { constructor(target) { super(); this.target = target; this.position = this.add(POSITION); this.add(CAMERA); this.update(); } update() { var targetPosition = this.target.position.getLocalPosition(); var eyeX = ( targetPosition.x + Math.cos(CAMERA_OFFSET_ANGLE) * CAMERA_OFFSET_RADIUS ); var eyeY = ( targetPosition.y + CAMERA_OFFSET_HEIGHT ); var eyeZ = ( targetPosition.z + Math.sin(CAMERA_OFFSET_ANGLE) * CAMERA_OFFSET_RADIUS ); this.position.lookAt( eyeX, eyeY, eyeZ, targetPosition.x, targetPosition.y, targetPosition.z, 0.0, 1.0, 0.0 ); } dispose() { this.target = null; } } module.exports = PlayerCamera;