Today I worked on Magnum Opus intermittently, but I feel like I managed to complete a few important things. First of all, I put together a new control layout that works around a few issues I had with keyboard limitations. I also did some small tweaks to the animation script in order to improve the functionality as well as complete the standard walking animations for the sprite.\
New Control Prototype
The new control system works in a way that, to me, is innovative, intuitive, and minimalistic, which I think makes it, as long as it is functional, a fairly decent control system. Since the game's theme is a retro platform game, I wanted the player to be able to move in each basic direction (up, down, left, and right) so I had originally designed the controls around the classic WASD and arrow keys control scheme.
The issue I ran into with that control scheme, was that some keyboards (including mine) can only track a few (3 in my case) keys being pushed at a time. So if for some reason a player pressed all the keys at once, instead of having no net movement, the player would instead experience the movement of whichever key was last pressed without being cancelled out. Another issue with this is if the player inadvertently pressed keys with the side of their hand, they could have issues with the controls not responding to their input.
The new control scheme doesn't rely heavily on the use of keys. This allows me to maintain a well-functioning flow in code as well as in the game, and helps to reach an intuitive feel to the controls.
Using the mouse's movement to control the character is a very intuitive idea. The control layout is very simple:
Move the mouse one way, the character moves that way. Simple, but effective. If you flick the mouse upward (away from yourself) the player jumps. the mouse buttons take care of the attacking, and use the space bar to activate the player's grappling hook.
I also worked a bit today on some more minor alterations to the game. I added ground detection so that the running animations would only happen when the player was on the ground, and added the rest of the running animations so that when the player runs in either direction it is animated.