diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/input.c | 2 | ||||
| -rw-r--r-- | src/main.c | 18 | ||||
| -rw-r--r-- | src/player.c | 17 | ||||
| -rw-r--r-- | src/render.c | 29 | ||||
| -rw-r--r-- | src/render.h | 2 |
5 files changed, 47 insertions, 21 deletions
diff --git a/src/input.c b/src/input.c index 5a43ae5..3661492 100644 --- a/src/input.c +++ b/src/input.c @@ -18,7 +18,6 @@ void updateController() held_p2 = joypad_get_buttons_held(JOYPAD_PORT_2); inputs_p2 = joypad_get_inputs(JOYPAD_PORT_2); - float x = inputs_p1.stick_x; float y = inputs_p1.stick_y; @@ -138,4 +137,5 @@ void updateController() inputs_p2.stick_x = x / 55.0f * 127.0f; inputs_p2.stick_y = y / 55.0f * 127.0f; + } @@ -61,8 +61,8 @@ World world = { .color = BLUE, }, { - .position = { 1, 1, 1 }, - .direction = { 1, 0, 0 }, + .position = { 2, 0, 0 }, + .direction = { -1, 0, 0 }, .speed = 1.0f/60.0f, .color = RED, } @@ -117,7 +117,7 @@ int main(void) //controller_read(&controllers); movePlayers(); - //camera = lookThroughPlayer(camera, world.players[0], world.players[1]); + camera = lookThroughPlayer(camera, world.players[0], world.players[1]); // Update //---------------------------------------------------------------------------------- @@ -130,13 +130,13 @@ int main(void) ClearBackground(DARKGRAY); - BeginScissorMode(320/2, 0, 320/2, 240); - rlViewport(320/2, 0, 320/2, 240); - renderWorld(&world, &camera); - EndScissorMode(); BeginScissorMode(0, 0, 320/2, 240); rlViewport(0, 0, 320/2, 240); - renderWorld(&world, &camera2); + renderWorld(&world, camera); + EndScissorMode(); + BeginScissorMode(320/2, 0, 320/2, 240); + rlViewport(320/2, 0, 320/2, 240); + renderWorld(&world, camera2); EndScissorMode(); rlViewport(0, 0, 320, 240); @@ -148,7 +148,7 @@ int main(void) updateController(); - char text[500]; + char text[50]; sprintf(text, "Joystick %d,%d", inputs_p1.stick_x, inputs_p1.stick_y); DrawText(text, 10, 30, 12, GREEN); DrawFPS(10, 10); diff --git a/src/player.c b/src/player.c index 4616fbd..ad8967b 100644 --- a/src/player.c +++ b/src/player.c @@ -13,16 +13,19 @@ drawPlayer(Player *player) Camera lookThroughPlayer(Camera camera, Player player, Player player2) { - 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.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); + camera.target.x = player.position.x; + camera.target.y = player.position.y; + camera.target.z = player.position.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.fovy = 90.0f; camera.projection = CAMERA_PERSPECTIVE; return camera; } @@ -41,10 +44,10 @@ movePlayers(void) if(distance != 0) { world.players[0].direction.x = x / distance; - world.players[0].direction.y = -y / distance; + world.players[0].direction.y = y / distance; } - world.players[1].direction.x = inputs_p2.stick_x / 126.0f; + world.players[1].direction.y = 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; diff --git a/src/render.c b/src/render.c index a0bfa8e..9188b6d 100644 --- a/src/render.c +++ b/src/render.c @@ -1,11 +1,34 @@ #include "render.h" +#include "rlgl.h" void -renderWorld(World* world, Camera* camera) +renderWorld(World* world, Camera camera) { - customBeginMode3D(*camera); - DrawGrid(100, 1); + //Vector3 lookat = camera.target; + //camera.target = (Vector3){0}; + //camera.position.x -= lookat.x; + //camera.position.y -= lookat.y; + //camera.position.z -= lookat.z; + customBeginMode3D(camera); + //rlPushMatrix(); + //rlTranslatef( + // -lookat.x, + // -lookat.y, + // -lookat.z + // ); drawPlayer(&world->players[0]); drawPlayer(&world->players[1]); + + for(int i = 0; i < 11; ++i){ + //DrawCube((Vector3){i,3,3}, 0.5f, 0.5f, 0.5f, YELLOW); + //DrawCube((Vector3){i,4,3}, 0.5f, 0.5f, 0.5f, DARKPURPLE); + //DrawCube((Vector3){i,5,3}, 0.5f, 0.5f, 0.5f, YELLOW); + //DrawCube((Vector3){i,3,4}, 0.5f, 0.5f, 0.5f, MAGENTA); + //DrawCube((Vector3){i,4,4}, 0.5f, 0.5f, 0.5f, GREEN); + DrawCube((Vector3){i,5,4}, 0.5f, 0.5f, 0.5f, MAGENTA); + DrawLineV((Vector2){i, 0}, (Vector2){i, 10}, BLACK); + DrawLineV((Vector2){0, i}, (Vector2){10, i}, BLACK); + } + //rlPopMatrix(); EndMode3D(); } diff --git a/src/render.h b/src/render.h index 7a16c83..7e066c4 100644 --- a/src/render.h +++ b/src/render.h @@ -6,7 +6,7 @@ #include "world.h" void -renderWorld(World* world, Camera* camera); +renderWorld(World* world, Camera camera); #endif |
