From 0998e8ed0d23317e65a42ccb9b5ef6195f7cafdf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sten=20J=C3=B8rgen=20Pettersen?= Date: Fri, 21 Mar 2025 22:43:02 +0100 Subject: [PATCH] fr. 21. mars 22:43:02 +0100 2025 --- main.cpp | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/main.cpp b/main.cpp index 60f2881..4d23d67 100644 --- a/main.cpp +++ b/main.cpp @@ -1,3 +1,4 @@ +#include #include #include #include @@ -70,6 +71,41 @@ int main(int /*argc*/, char */*argv*/[]) double sideDistY; double deltaDistX = (rayDirX == 0) ? 1e30 : std::abs(1 / rayDirX); double deltaDistY = (rayDirY == 0) ? 1e30 : std::abs(1 / rayDirY); + double perpWallDist; + int stepX; + int stepY; + int hit = 0; + int side; + if(rayDirX < 0) { + stepX = -1; + sideDistX = (posX -mapX) * deltaDistX; + } else { + stepX = 1; + sideDistX = (mapX + 1.0 - posX) * deltaDistX; + } + if(rayDirY < 0) { + stepY = -1; + sideDistY = (posY - mapY) * deltaDistY; + } else { + stepY = 1; + sideDistY = (mapY +1.0 - posY) * deltaDistY; + } + while(hit == 0) + { + if(sideDistX < sideDistY) { + sideDistX += deltaDistX; + mapX += stepX; + side = 0; + } else { + sideDistY += deltaDistY; + mapY += stepY; + side = 1; + } + if(worldMap[mapX][mapY] > 0) hit = 1; + if(side == 0) perpWallDist = (sideDistX - deltaDistX); + else perpWallDist = (sideDistY - deltaDistY); + int lineHeight = (int)(h /perpWallDist); + } } } }