1
0
Fork 0

Pick back up and comment

Clean placeholder code to get it running.
Add comments to clarify working, add TODOs in main,
add some references for the maths.
This commit is contained in:
trotFunky 2023-12-30 14:50:35 +01:00
parent 59939d182b
commit c7384ba9ba
3 changed files with 34 additions and 4 deletions

View file

@ -94,11 +94,15 @@ void World::fillColumn(sf::RenderWindow& window, int column, float scale, sf::Co
float World::castRay(float originX, float originY, float orientation)
{
/*
* Reference used for ray intersection computations :
* https://web.archive.org/web/20220628034315/https://yunes.informatique.univ-paris-diderot.fr/wp-content/uploads/cours/INFOGRAPHIE/08-Raycasting.pdf
*/
float deltaX;
float deltaY;
if(orientation < 45 || orientation > 315)
{
deltaX = ;
}
else if(orientation < 135)
{
@ -113,11 +117,16 @@ float World::castRay(float originX, float originY, float orientation)
}
return();
return 0;
}
void World::render(sf::RenderWindow& window) const
{
/*
* Draw ground and sky planes through half of the screen, as the walls
* will get drawn over them.
* This doesn't work if we support textures/levels.
*/
sf::RectangleShape ground = sf::RectangleShape(sf::Vector2f(window.getSize().x,window.getSize().y/2.0));
ground.setFillColor(groundColor);
ground.setPosition(0,window.getSize().y/2.0);
@ -128,10 +137,13 @@ void World::render(sf::RenderWindow& window) const
window.draw(ground);
window.draw(ceiling);
/*
* Throw rays and draw walls over the ceiling and ground.
* Only throws in the plane, which doesn't work for levels/3D.
*/
for(int i = 0;i<window.getSize().x;i++)
{
fillColumn(window, i, 0.5);
std::cout << i << std::endl;
}
}