Advertisement
Guest User

Untitled

a guest
Apr 9th, 2016
80
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.57 KB | None | 0 0
  1.     fix posX = FIX(9), posY = ftofix(12.5);
  2.     fix dirX = FIX(-1), dirY = FIX(0);
  3.     fix planeX = FIX(0), planeY = ftofix(0.9);
  4.     fix time = FIX(0), oldTime = FIX(0);
  5.    
  6.     fix cameraX, rayPosX, rayPosY, rayDirX, rayDirY, sideDistX, sideDistY, deltaDistX, deltaDistY, perpWallDist, frameTime, moveSpeed, rotSpeed, oldDirX, oldPlaneX;
  7.     int x, y, mapX, mapY, stepX, stepY, hit, side, lineHeight, drawStart, drawEnd;
  8.  
  9.             cameraX = fdiv(FIX(2 * x), FIX(screenWidth)) - FIX(1);
  10.             rayPosX = posX;
  11.             rayPosY = posY;
  12.             rayDirX = dirX + fmul(planeX, cameraX);
  13.             rayDirY = dirY + fmul(planeY, cameraX);
  14.            
  15.             mapX = UNFIX(rayPosX);
  16.             mapY = UNFIX(rayPosY);
  17.             deltaDistX = ftofix(SquareRootFloat(fixtof(FIX(1) + fdiv(fmul(rayDirY, rayDirY), fmul(rayDirX, rayDirX)))));
  18.             deltaDistY = ftofix(SquareRootFloat(fixtof(FIX(1) + fdiv(fmul(rayDirX, rayDirX), fmul(rayDirY, rayDirY)))));
  19.             hit = 0;
  20.            
  21.             if (rayDirX < FIX(0))
  22.             {
  23.                 stepX = -1;
  24.                 sideDistX = fmul(rayPosX - FIX(mapX), deltaDistX);
  25.             }
  26.             else
  27.             {
  28.                 stepX = 1;
  29.                 sideDistX = fmul(FIX(mapX + 1) - rayPosX, deltaDistX);
  30.             }
  31.             if (rayDirY < FIX(0))
  32.             {
  33.                 stepY = -1;
  34.                 sideDistY = fmul(rayPosY - FIX(mapY), deltaDistY);
  35.             }
  36.             else
  37.             {
  38.                 stepY = 1;
  39.                 sideDistY = fmul(FIX(mapY + 1) - rayPosY, deltaDistY);
  40.             }
  41.            
  42.             while (hit == 0)
  43.             {
  44.                 if (sideDistX < sideDistY)
  45.                 {
  46.                     sideDistX += deltaDistX;
  47.                     mapX += stepX;
  48.                     side = 0;
  49.                 }
  50.                 else
  51.                 {
  52.                     sideDistY += deltaDistY;
  53.                     mapY += stepY;
  54.                     side = 1;
  55.                 }
  56.                
  57.                 if (worldMap[mapX][mapY] > 0) hit = 1;
  58.             }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement