Working with XInput and the XB360 controller again... I got the thumbsticks working now. That was really hard by XInput standards - I had to compute deadzones [oh]
Anyway, the left thumbstick X axis rotates the camera and the right thumbstick Y axis "zooms". It's not quite zoom as it doesn't alter the FOV - just moves the camera closer. This means that when the camera gets fully zoomed in it appears to be almost top-down.
A combination of these has led me to think about how I want the player to control things. I've not had to do that before - it's always been obvious (aka copy what the other guys do).
The biggest problem is with rotation - as soon as you change the angle then the corresponding player movement is unintuitive. For example, from a camera at 0o DPAD-LEFT appears to move the player left, from 180o DPAD-LEFT moves the player right. Regardless of this, the player still transitions from tile-to-tile in the same direction.
As I see it, there are a couple of routes:
- Have a reset button. If the user presses "A" for example then the camera rotates to be "behind" the player.
Allows the player to get back to normal if they get "lost".
Requires the player to want to reset, meaning the view has to be wrong before they correct it.
- Have the camera auto-reset when the player moves. Allow camera manipulation only when they're stationary.
The game takes care of things automagically.
What if the player doesn't like the "normal" view.
- Completely change how the player is moved. Currently the player moves relative to the world, whereas I could make it such that DPAD-UP is whatever direction the camera is facing.
Would eliminate the problem entirely.
My game only have 8 possible movement directions - it's not freeform. It makes the camera involved in the gameplay, I like the way it's just a "view" into the game.
I'd be very interested in any ideas you guys have (nudge-nudge [wink] [wink])...