diff options
| -rw-r--r-- | src/main.c | 2 | ||||
| -rw-r--r-- | src/player.c | 4 | ||||
| -rw-r--r-- | src/player.h | 2 | ||||
| -rw-r--r-- | src/render.c | 127 |
4 files changed, 124 insertions, 11 deletions
@@ -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]); // Update //---------------------------------------------------------------------------------- diff --git a/src/player.c b/src/player.c index eca796a..64f12c9 100644 --- a/src/player.c +++ b/src/player.c @@ -11,12 +11,12 @@ drawPlayer(Player *player) } Camera -lookThroughPlayer(Camera camera, Player player, Player player2) +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); + 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; diff --git a/src/player.h b/src/player.h index eca7579..3d9db39 100644 --- a/src/player.h +++ b/src/player.h @@ -15,7 +15,7 @@ struct Player; Camera -lookThroughPlayer(Camera camera, Player player, Player player2); +lookThroughPlayer(Camera camera, Player player); void drawPlayer(Player *player); diff --git a/src/render.c b/src/render.c index 9203ece..d4734c6 100644 --- a/src/render.c +++ b/src/render.c @@ -2,6 +2,113 @@ #include "rlgl.h" void +drawLine(Vector3 start, Vector3 end, float width, int up, Color color) +{ + start.x *= 100; + start.y *= 100; + start.z *= 100; + end.x *= 100; + end.y *= 100; + end.z *= 100; + width *= 2; + // 2 is z up for some reason /shrug + int ox = 0; + int oy = 0; + int oz = 0; + + if(up == 1) + { + ox = (width / 2); + } + else if(up == 2) + { + oy = (width / 2); + } + else if(up == 3) + { + oz = (width / 2); + } + else if(up == -1) + { + ox = -(width / 2); + } + else if(up == -2) + { + oy = -(width / 2); + } + else if(up == -3) + { + oz = -(width / 2); + } + + + Vector3 points[4] = { + (Vector3){ (start.x + ox) * 1, (start.y + oy) * 1, (start.z + oz) * 1 }, + (Vector3){ (start.x - ox) * 1, (start.y - oy) * 1, (start.z - oz) * 1 }, + (Vector3){ (end.x + ox) * 1, (end.y + oy) * 1, (end.z + oz) * 1 }, + (Vector3){ (end.x - ox) * 1, (end.y - oy) * 1, (end.z - oz) * 1 }, + }; + + //Vector3 points[4] = { + // (Vector3){ 0, 0, 0 }, + // (Vector3){ 10, 0, 0 }, + // (Vector3){ 0, 10, 0 }, + // (Vector3){ 10, 10, 0 }, + //}; + rlPushMatrix(); + rlScalef(0.01, 0.01, 0.01); + DrawTriangleStrip3D(points, 4, color); + rlPopMatrix(); +} + +void +drawGrid(Vector3 position, int lines, int size, Color color) +{ + position.x -= lines * size / 2; + position.y -= lines * size / 2; + for(int i = 0; i < lines + 1; ++i) + { + float mx = position.x; + float my = position.y + (i * size); + float mz = position.z; + drawLine( + (Vector3){ + mx, + my, + mz + }, + (Vector3){ + mx + (size * lines), + my, + mz + }, + 4.0f, + 2, + BLACK); + } + for(int i = 0; i < lines + 1; ++i) + { + float mx = position.x + (i * size); + float my = position.y; + float mz = position.z; + drawLine( + (Vector3){ + mx, + my, + mz + }, + (Vector3){ + mx, + my + (size * lines), + mz + }, + 4.0f, + -1, + BLACK); + } +} + +void renderWorld(World* world, Camera camera) { //Vector3 lookat = camera.target; @@ -19,16 +126,22 @@ renderWorld(World* world, Camera camera) drawPlayer(&world->players[0]); drawPlayer(&world->players[1]); - for(int i = 0; i <= 3; ++i){ + //drawGrid((Vector3){0}, 10, 1); + + for(int i = -3; i <= 3; ++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, -3}, (Vector2){i, 3}, BLACK); - //DrawLineV((Vector2){-3, i}, (Vector2){3, i}, BLACK); + //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); + //DrawLineEx((Vector2){i, 3},(Vector2){i, -3}, 5, BLACK); + //DrawLineEx((Vector2){3, i},(Vector2){-3, i}, 5, BLACK); } + //drawLine((Vector3){0}, (Vector3){10,0,0}, 2.0f, 2, BLACK); + + drawGrid((Vector3){0}, 10, 1, BLACK); + //rlPopMatrix(); EndMode3D(); } |
