I've pretty much abandoned this project in favor of a better 3D solution. I may come back to this in the future if I can't complete the project. Current bugs: - Perspective is being done incorrectly, so squares look skewed when viewed from an angle. I've made the FOV fairly high to mitigate the issue, but if you turn it back down to somewhere between 60 and 80 you'll see the problem. - Movement doesn't account for FPS. This is an easy fix as I just need to implement delta time. - Vertical rotation makes the map tilted the wrong way after moving around. This is because I'm saving the rotated map so that horizontal rotation can be done relatively. The fix for this would be to do vertical rotation separate from horizontal so it would be done relative to the map rather than the current orientation. - Z-clipping doesn't work, see the next section Features not added yet: - Z-clipping. This makes sure triangles behind the player don't try to render. My current barebones system checks if each triangle's central Z coordinate is negative or positive, only rendering if it is the latter. This means that some triangles render when they shouldn't, and others don't render when they should. I'll do actual Z-clipping in a future version, perhaps the next one. - Physics. Once I fix my rendering problems, I'll start work on this. - Map interactivity & dynamic map objects. I plan to add this after physics. - Map importing. I plan to add this once I get rendering under control.
@Japto for 3D rotation, which I heavily modified https://scratch.mit.edu/projects/734580686/ @Vadik1 for textured triangle filler https://scratch.mit.edu/projects/493965301/ @-Rex- for Quicksort