Camera smoothing.

This commit is contained in:
2021-09-26 19:09:47 -07:00
parent f3a16b9c8c
commit 27927a1820
4 changed files with 24 additions and 12 deletions

View File

@ -40,15 +40,16 @@ void pokerWorldInit(
void pokerWorldLookAtPlayer( void pokerWorldLookAtPlayer(
vnscene_t *scene, uint8_t playerIndex vnscene_t *scene, uint8_t playerIndex
) { ) {
uint8_t seat = pokerGameSeatFromIndex(playerIndex); vnSceneLookAtCharacter(scene, playerIndex, -1);
vnSceneLookAt(scene, // uint8_t seat = pokerGameSeatFromIndex(playerIndex);
scene->cameraLook.x, // vnSceneLookAtCharacter(scene,
scene->cameraLook.y, // scene->cameraLook.x,
scene->cameraLook.z, // scene->cameraLook.y,
POKER_WORLD_SEAT_POSITION_X(seat), // scene->cameraLook.z,
scene->cameraLook.lookY, // POKER_WORLD_SEAT_POSITION_X(seat),
POKER_WORLD_SEAT_POSITION_Z(seat) // scene->cameraLook.lookY,
); // POKER_WORLD_SEAT_POSITION_Z(seat)
// );
} }
void pokerWorldRender(pokerworld_t *world, pokergameassets_t *assets) { void pokerWorldRender(pokerworld_t *world, pokergameassets_t *assets) {

View File

@ -19,7 +19,7 @@
#include "pokergameassets.h" #include "pokergameassets.h"
#define POKER_WORLD_SEAT_DISTANCE -1 #define POKER_WORLD_SEAT_DISTANCE -0.75f
#define POKER_WORLD_SEAT_ROTATION(n) (n * mathDeg2Rad(45.0f)) #define POKER_WORLD_SEAT_ROTATION(n) (n * mathDeg2Rad(45.0f))
#define POKER_WORLD_SEAT_POSITION_X(n) ( \ #define POKER_WORLD_SEAT_POSITION_X(n) ( \

View File

@ -21,7 +21,7 @@ void vnSceneInit(vnscene_t *scene, font_t *font, texture_t *text) {
scene->cameraLook.z = 0; scene->cameraLook.z = 0;
scene->cameraLook.lookX = 0; scene->cameraLook.lookX = 0;
scene->cameraLook.lookY = 0; scene->cameraLook.lookY = 0;
scene->cameraLook.lookZ = 0; scene->cameraLook.lookZ = VN_SCENE_DISTANCE_DEFAULT;
// Reset character count // Reset character count
scene->characterCount = 0x00; scene->characterCount = 0x00;
@ -135,4 +135,13 @@ void vnSceneLookAt(vnscene_t *scene,
void vnSceneLookAtCharacter(vnscene_t *scene, uint8_t c, float distance) { void vnSceneLookAtCharacter(vnscene_t *scene, uint8_t c, float distance) {
vncharacter_t *character = scene->characters + c; vncharacter_t *character = scene->characters + c;
vnSceneLookAt(scene,
-distance * sinf(character->yaw) + character->x,
scene->cameraLook.y,
-distance * cosf(character->yaw) + character->z,
character->x,
scene->cameraLook.lookY,
character->z
);
} }

View File

@ -51,4 +51,6 @@ void vnSceneRenderGui(vnscene_t *scene, engine_t *engine, shader_t *shader);
void vnSceneLookAt(vnscene_t *scene, void vnSceneLookAt(vnscene_t *scene,
float x, float y, float z, float lookX, float lookY, float lookZ float x, float y, float z, float lookX, float lookY, float lookZ
); );
void vnSceneLookAtCharacter(vnscene_t *scene, uint8_t c, float distance);