summaryrefslogtreecommitdiff
path: root/src/renderer.c
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--src/renderer.c44
1 files changed, 28 insertions, 16 deletions
diff --git a/src/renderer.c b/src/renderer.c
index c64be51..a77f855 100644
--- a/src/renderer.c
+++ b/src/renderer.c
@@ -19,16 +19,16 @@ static double fov = PI / 4;
#define FOV_CHANGE_SPEED 1
#define PLAYER_SIZE .1
+
void update_camera(Camera* camera, Screen* screen) {
double rotate = 0;
- if (key_pressed(screen, SDL_SCANCODE_LEFT))
+ if (key_down(KEY_LEFT))
rotate -= ROTATE_SPEED;
- if (key_pressed(screen, SDL_SCANCODE_RIGHT))
+ if (key_down(KEY_RIGHT))
rotate += ROTATE_SPEED;
-
rotate *= screen->delta;
rotate += camera->angle;
while (rotate >= PI2) rotate -= PI2;
@@ -39,31 +39,31 @@ void update_camera(Camera* camera, Screen* screen) {
v2 left = { forward.y, -forward.x };
v2 move = { 0, 0 };
- if (key_pressed(screen, SDL_SCANCODE_W)) {
+ if (key_down(KEY_W)) {
move.x += forward.x;
move.y += forward.y;
}
- if (key_pressed(screen, SDL_SCANCODE_S)) {
+ if (key_down(KEY_S)) {
move.x -= forward.x;
move.y -= forward.y;
}
- if (key_pressed(screen, SDL_SCANCODE_A)) {
+ if (key_down(KEY_A)) {
move.x += left.x;
move.y += left.y;
}
- if (key_pressed(screen, SDL_SCANCODE_D)) {
+ if (key_down(KEY_D)) {
move.x -= left.x;
move.y -= left.y;
}
- if (key_pressed(screen, SDL_SCANCODE_EQUALS)) {
+ if (key_down(KEY_EQUALS)) {
fov += FOV_CHANGE_SPEED * screen->delta;
}
- if (key_pressed(screen, SDL_SCANCODE_MINUS)) {
+ if (key_down(KEY_MINUS)) {
fov -= FOV_CHANGE_SPEED * screen->delta;
}
@@ -94,6 +94,7 @@ void render(Screen* screen, const Camera* camera) {
};
for (int x = 0; x < screen->width; x++) {
+
const float xcam = (2 * (x / (float) (screen->width))) - 1;
const float change = fov * atan(xcam);
const float theta = camera->angle + change;
@@ -109,20 +110,31 @@ void render(Screen* screen, const Camera* camera) {
uint32_t color;
switch (hit) {
case 1: color = 0xFF0000FF; break;
- case 2: color = 0x00FF00FF; break;
- case 3: color = 0x0000FFFF; break;
- case 4: color = 0xFF00FFFF; break;
- case 5: color = 0x00FFFFFF; break;
- default: color = 0x000000FF; break;
+ case 2: color = 0xFF00FF00; break;
+ case 3: color = 0xFFFF0000; break;
+ case 4: color = 0xFFFF00FF; break;
+ case 5: color = 0xFFFFFF00; break;
+ default: color = 0xFF000000; break;
}
+ // switch (hit) {
+ // case 1: color = 0xFF0000FF; break;
+ // case 2: color = 0x00FF00FF; break;
+ // case 3: color = 0x0000FFFF; break;
+ // case 4: color = 0xFF00FFFF; break;
+ // case 5: color = 0x00FFFFFF; break;
+ // default: color = 0x000000FF; break;
+ // }
const int
h = (int) (screen->height / len),
y0 = max((screen->height / 2) - (h / 2), 0),
y1 = min((screen->height / 2) + (h / 2), screen->height - 1);
- verline(screen, x, 0, y0, 0x202020FF);
+ verline(screen, x, 0, y0, 0xFF202020);
verline(screen, x, y0, y1, color);
- verline(screen, x, y1, screen->height - 1, 0x505050FF);
+ verline(screen, x, y1, screen->height - 1, 0xFF505050);
+ // verline(screen, x, 0, y0, 0x202020FF);
+ // verline(screen, x, y0, y1, color);
+ // verline(screen, x, y1, screen->height - 1, 0x505050FF);
}
}