I'm soon done with my tasks for this week which are to draw out walls and make it so that the player can't see behind the walls.
I started out with the walls and created a new object called Wall. A wall is simply a line which the player can't cross nor see behind, nothing can interact with walls so the class was easy to make. Two Vector2f variables to keep track on start and end position of the lines, a VertexArray which is the line, two constructors, a Draw method, two SetPosition methods and a GetPosition as well.
- There are two constructors, one that take four int parameters and the other take two Vector2f parameters that sets the position of the line. I did this to make it easier creating a wall later on.
- The draw method only draw the line but I have it there if I later decide the walls should include the shadows.
- The two SetPositions does what the constructors does.
- The GetPosition method takes a string parameter which asks for which position to return. I did this quickly because I thought it might be easy, but it is not and I will change it later.
Just walls, no shadow. |
This time I though I'd take the two positions from the wall and calculate the unit vector from the player to each of them. Then use the unit vector to calculate where a line from the player that intersect with the edge of the wall hits the edge of the screen. The draw a polygon with four points, the two wall edges and the two calculated values. If the polygon would cover a corner another point would be added to the polygon with the coordinates of the corner. A lot fewer iterations.
Player in the middle can't see through walls. |
This was a lot harder to implement than I though but now it's almost perfect. I think about moving the polygon to the wall class and add a method taking two parameters (the player's position and the render window) and calculate everything there.
I will fix some detail and quality assure my friends work tomorrow.
Thanks for reading, and stay awesome!
It's very constructive, I feel like you have made a detailed explanation of both the class and the methods that it consists of. You write very short but rich in details, I like that; it keeps the pace of the reading fast and yet the reader understands your work progress better.
ReplyDeleteNow for the bad part:
*read before you send it in, I only see one missspelled word where you wrote "the draw a polygon with four points,". Very impressive having only one fault though, good job.
*I cannot say I see anymore faults really, good work.
Much love,
Ladbon