浏览代码

Redesigned UpdateCamera() function

Splitted into:
UpdateCamera()             // Update only camera
UpdateCameraPlayer()   // Update camera and player position
pull/26/head
raysan5 10 年前
父节点
当前提交
535b9e606f
共有 2 个文件被更改,包括 17 次插入6 次删除
  1. +15
    -5
      src/camera.c
  2. +2
    -1
      src/camera.h

+ 15
- 5
src/camera.c 查看文件

@ -162,14 +162,24 @@ void SetCameraMode(int mode)
cameraMode = mode; cameraMode = mode;
} }
// Update camera with position
// TODO: I don't like how this function works right now... not clear enough...
Camera UpdateCamera(Vector3 *position)
// Update camera (player position is ignored)
void UpdateCamera(Camera *camera)
{ {
// Calculate camera
Vector3 position = { 0, 0, 0 };
// Process internal camera and player position (if required)
if (cameraMode != CAMERA_CUSTOM) ProcessCamera(&internalCamera, &position);
*camera = internalCamera;
}
// Update camera and player position (1st person and 3rd person cameras)
void UpdateCameraPlayer(Camera *camera, Vector3 *position)
{
// Process internal camera and player position (if required)
if (cameraMode != CAMERA_CUSTOM) ProcessCamera(&internalCamera, position); if (cameraMode != CAMERA_CUSTOM) ProcessCamera(&internalCamera, position);
return internalCamera;
o">*camera = internalCamera;
} }
// Set internal camera position // Set internal camera position

+ 2
- 1
src/camera.h 查看文件

@ -76,7 +76,8 @@ extern "C" { // Prevents name mangling of functions
// Module Functions Declaration // Module Functions Declaration
//---------------------------------------------------------------------------------- //----------------------------------------------------------------------------------
void SetCameraMode(int mode); // Set camera mode (multiple camera modes available) void SetCameraMode(int mode); // Set camera mode (multiple camera modes available)
Camera UpdateCamera(Vector3 *position); // Update camera and player position (1st person and 3rd person cameras)
void UpdateCamera(Camera *camera); // Update camera (player position is ignored)
void UpdateCameraPlayer(Camera *camera, Vector3 *position); // Update camera and player position (1st person and 3rd person cameras)
void SetCameraPosition(Vector3 position); // Set internal camera position void SetCameraPosition(Vector3 position); // Set internal camera position
void SetCameraTarget(Vector3 target); // Set internal camera target void SetCameraTarget(Vector3 target); // Set internal camera target

正在加载...
取消
保存