summaryrefslogtreecommitdiffhomepage
path: root/src/player.c
diff options
context:
space:
mode:
authorrealtradam <[email protected]>2024-05-12 17:34:21 -0400
committerrealtradam <[email protected]>2024-05-12 17:34:21 -0400
commit8475767975a0f07507908ba53dba894b97b48795 (patch)
tree4d5bf2f8c49eb92f8d9777e0606d944dca01905d /src/player.c
parentf5311cc940fd94aa70808f19a38581c80b764615 (diff)
downloadtojam2024-8475767975a0f07507908ba53dba894b97b48795.tar.gz
tojam2024-8475767975a0f07507908ba53dba894b97b48795.zip
shooting bullets
Diffstat (limited to 'src/player.c')
-rw-r--r--src/player.c105
1 files changed, 47 insertions, 58 deletions
diff --git a/src/player.c b/src/player.c
index 3b30b05..4e02b78 100644
--- a/src/player.c
+++ b/src/player.c
@@ -11,16 +11,34 @@ drawPlayer(Player *player)
DrawCube(player->position, 0.5f, 0.5f, 0.5f, player->color);
}
-Camera
+ Camera
lookThroughPlayer(Camera camera, Player player)
{
- //camera.position = player.position;
- camera.position.x = player.position.x - (player.direction.x * 2);
- camera.position.y = player.position.y - (player.direction.y * 2);
- camera.position.z = player.position.z - (player.direction.z * 2) + 1;
- camera.target.x = player.position.x;
- camera.target.y = player.position.y;
- camera.target.z = player.position.z;
+ if(player.camera_mode == 0)
+ {
+ float normalized = sqrtf(
+ (player.direction.x * player.direction.x) +
+ (player.direction.y * player.direction.y) +
+ (player.direction.z * player.direction.z)
+ );
+
+ camera.position.x = player.position.x + player.direction.x / normalized;
+ camera.position.y = player.position.y + player.direction.y / normalized;
+ camera.position.z = player.position.z + player.direction.z / normalized;
+ camera.target.x = player.position.x + player.direction.x * 10 / normalized;
+ camera.target.y = player.position.y + player.direction.y * 10 / normalized;
+ camera.target.z = player.position.z + player.direction.z * 10 / normalized;
+ }
+ else if(player.camera_mode == 1)
+ {
+ //camera.position = player.position;
+ camera.position.x = player.position.x - (player.direction.x * 2);
+ camera.position.y = player.position.y - (player.direction.y * 2);
+ camera.position.z = player.position.z - (player.direction.z * 2) + player.camera_mode;
+ camera.target.x = player.position.x;
+ camera.target.y = player.position.y;
+ camera.target.z = player.position.z;
+ }
camera.up = (Vector3){ 0.0f, 0.0f, 1.0f };
//camera.target = player2.position;
//camera.target = (Vector3){
@@ -34,59 +52,30 @@ lookThroughPlayer(Camera camera, Player player)
void
movePlayers(void)
{
- float xinput = inputs_p1.stick_x / 126.0f;
- float yinput = -inputs_p1.stick_y / 126.0f;
-
- //float distance = sqrtf(xinput * xinput + yinput * yinput);
- //if(distance == 0)
- //{
- // distance = 1;
- //}
-
- Vector2 direction = {
- world.players[0].direction.x,
- world.players[0].direction.y
+ char stick[4] = {
+ inputs_p1.stick_x,
+ inputs_p1.stick_y,
+ inputs_p2.stick_x,
+ inputs_p2.stick_y
};
+ for(int i = 0; i < 2; ++i)
+ {
+ float xinput = stick[0 + (i * 2)] / 126.0f;
+ float yinput = stick[1 + (i * 2)] / 126.0f;
- char text[50];
-
- sprintf(text, "x: %f", direction.x);
- DrawText(text, 160, 45, 12, GREEN);
- sprintf(text, "y: %f", direction.y);
- DrawText(text, 160, 60, 12, GREEN);
- sprintf(text, "z: %f", world.players[0].direction.z);
- DrawText(text, 160, 75, 12, GREEN);
-
- direction = Vector2Rotate(direction, 0.01745329 * -xinput * 7);
-
- sprintf(text, "x: %f", direction.x);
- DrawText(text, 160, 175, 12, GREEN);
- sprintf(text, "y: %f", direction.y);
- DrawText(text, 160, 190, 12, GREEN);
- sprintf(text, "z: %f", world.players[0].direction.z);
- DrawText(text, 160, 205, 12, GREEN);
-
- world.players[0].direction.z = yinput;
- world.players[0].direction.x = direction.x;
- world.players[0].direction.y = direction.y;
-
- //float x = world.players[0].direction.x;
- //float y = world.players[0].direction.z;
-
+ Vector2 direction = {
+ world.players[i].direction.x,
+ world.players[i].direction.y
+ };
- //if(distance != 0)
- //{
- // world.players[0].direction.x = x / distance;
- // world.players[0].direction.y = y / distance;
- //}
+ direction = Vector2Rotate(direction, 0.01745329 * -xinput * 7);
- //world.players[1].direction.y = inputs_p2.stick_x / 126.0f;
- //world.players[1].direction.z = -inputs_p2.stick_y / 126.0f;
+ world.players[i].direction.z = yinput;
+ world.players[i].direction.x = direction.x;
+ world.players[i].direction.y = direction.y;
- world.players[0].position.x += world.players[0].direction.x * 0.1f; //* world.players[0].speed;
- world.players[0].position.y += world.players[0].direction.y * 0.1f; //* world.players[0].speed;
- world.players[0].position.z += world.players[0].direction.z * 0.1f; //* 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;
+ world.players[i].position.x += world.players[i].direction.x * world.players[i].speed;
+ world.players[i].position.y += world.players[i].direction.y * world.players[i].speed;
+ world.players[i].position.z += world.players[i].direction.z * world.players[i].speed;
+ }
}