summaryrefslogtreecommitdiffhomepage
path: root/src/player.c
diff options
context:
space:
mode:
authorrealtradam <[email protected]>2024-05-11 22:40:22 -0400
committerrealtradam <[email protected]>2024-05-11 22:40:22 -0400
commit963ca487e39dc6f5fa28ea230610d140bf1583fb (patch)
tree8f208c6b152b68ae75c9df7b59ccaee9e6105445 /src/player.c
parent8855c3de33c487e09b6a8fd474b0dd351ab3581c (diff)
downloadtojam2024-963ca487e39dc6f5fa28ea230610d140bf1583fb.tar.gz
tojam2024-963ca487e39dc6f5fa28ea230610d140bf1583fb.zip
attempt at first person camera
Diffstat (limited to 'src/player.c')
-rw-r--r--src/player.c56
1 files changed, 47 insertions, 9 deletions
diff --git a/src/player.c b/src/player.c
index f2b5a8e..4616fbd 100644
--- a/src/player.c
+++ b/src/player.c
@@ -1,18 +1,56 @@
#include "player.h"
+#include "world.h"
+#include <fmath.h>
-void
+ void
drawPlayer(Player *player)
{
//DrawCube(player->position, 1.0f, 1.0f, 1.0f, BLUE);
- DrawSphereEx(player->position, 0.5f, 3, 3, player->color);
+ //DrawSphereEx(player->position, 0.5f, 3, 3, player->color);
+ DrawCube(player->position, 0.5f, 0.5f, 0.5f, player->color);
}
-void
-movePlayer(Player *player)
+Camera
+lookThroughPlayer(Camera camera, Player player, Player player2)
{
- player->direction.x = inputs_p1.stick_x / 126.0f;
- player->direction.z = -inputs_p1.stick_y / 126.0f;
- player->position.x += player->direction.x * player->speed;
- player->position.y += player->direction.y * player->speed;
- player->position.z += player->direction.z * player->speed;
+ camera.position = player.position;
+ //camera.target.x = player.position.x + player.direction.x;
+ //camera.target.y = player.position.y + player.direction.y;
+ //camera.target.z = player.position.z + player.direction.z;
+ //camera.up = (Vector3){ 0.0f, 1.0f, 0.0f };
+ //camera.target = player2.position;
+ //camera.target = (Vector3){
+ // 0, 0, 0
+ //};
+ camera.fovy = 45.0f;
+ camera.projection = CAMERA_PERSPECTIVE;
+ return camera;
+}
+
+ void
+movePlayers(void)
+{
+ float x = inputs_p1.stick_x / 126.0f;
+ float y = -inputs_p1.stick_y / 126.0f;
+
+ //float x = world.players[0].direction.x;
+ //float y = world.players[0].direction.z;
+
+ float distance = sqrtf(x * x + y * y);
+
+ if(distance != 0)
+ {
+ world.players[0].direction.x = x / distance;
+ world.players[0].direction.y = -y / distance;
+ }
+
+ world.players[1].direction.x = inputs_p2.stick_x / 126.0f;
+ world.players[1].direction.z = -inputs_p2.stick_y / 126.0f;
+
+ world.players[0].position.x += world.players[0].direction.x * world.players[0].speed;
+ world.players[0].position.y += world.players[0].direction.y * world.players[0].speed;
+ world.players[0].position.z += world.players[0].direction.z * world.players[0].speed;
+ world.players[1].position.x += world.players[1].direction.x * world.players[1].speed;
+ world.players[1].position.y += world.players[1].direction.y * world.players[1].speed;
+ world.players[1].position.z += world.players[1].direction.z * world.players[1].speed;
}