Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- fix posX = FIX(9), posY = ftofix(12.5);
- fix dirX = FIX(-1), dirY = FIX(0);
- fix planeX = FIX(0), planeY = ftofix(0.9);
- fix time = FIX(0), oldTime = FIX(0);
- fix cameraX, rayPosX, rayPosY, rayDirX, rayDirY, sideDistX, sideDistY, deltaDistX, deltaDistY, perpWallDist, frameTime, moveSpeed, rotSpeed, oldDirX, oldPlaneX;
- int x, y, mapX, mapY, stepX, stepY, hit, side, lineHeight, drawStart, drawEnd;
- cameraX = fdiv(FIX(2 * x), FIX(screenWidth)) - FIX(1);
- rayPosX = posX;
- rayPosY = posY;
- rayDirX = dirX + fmul(planeX, cameraX);
- rayDirY = dirY + fmul(planeY, cameraX);
- mapX = UNFIX(rayPosX);
- mapY = UNFIX(rayPosY);
- deltaDistX = ftofix(SquareRootFloat(fixtof(FIX(1) + fdiv(fmul(rayDirY, rayDirY), fmul(rayDirX, rayDirX)))));
- deltaDistY = ftofix(SquareRootFloat(fixtof(FIX(1) + fdiv(fmul(rayDirX, rayDirX), fmul(rayDirY, rayDirY)))));
- hit = 0;
- if (rayDirX < FIX(0))
- {
- stepX = -1;
- sideDistX = fmul(rayPosX - FIX(mapX), deltaDistX);
- }
- else
- {
- stepX = 1;
- sideDistX = fmul(FIX(mapX + 1) - rayPosX, deltaDistX);
- }
- if (rayDirY < FIX(0))
- {
- stepY = -1;
- sideDistY = fmul(rayPosY - FIX(mapY), deltaDistY);
- }
- else
- {
- stepY = 1;
- sideDistY = fmul(FIX(mapY + 1) - rayPosY, 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;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement