- Home /
How to rotate a character and camera - 2.5d platform game
I am looking to create a 2.5d platform game similar to games such as Pandemonium (PSX/Saturn). I am not very proficient at Java coding but can follow a basic tutorial to learn how to create a basic 2d platform game. My issue is that I do not know how to approach the problem of rotating the Character and Camera around a corner when the player comes to certain points in the level thus changing the axis of game play.
I was wondering if anyone has any suggestions on how to accomplish this?
Thank you in advance
Answer by Statement · Dec 12, 2011 at 06:12 PM
If you have a predetermined "axis change" trigger, you could rotate the character/camera 90 degrees (or what have you). Movement would be quite simple, as you'd only move left/right according to your rotation, so you can use transform.left or transform.right, when moving your character sideways.
Consider this image.
This is a top-down (areal) view of the intended solution. The black L shape represents the path the character is walking. The red and green boxes are meant to be triggers (although you could do this with 1 trigger). If the player is walking to the right (from above in picture) and enters the red zone, the orientation adjusts for ZY transformation. It's already using this transformation, so nothing happens. Then player enter green zone, and orientation adjusts for XY transformation, causing the player and camera to rotate. If player is continuing to walk "right", they would no longer be moving "down", but "right" in our top-down view. If the player then returns back toward the corner, first they hit green collider (applies same transformation as already are being used = no change), and then red collider (applies the ZY transformation for movement) and the player can then move back around the corner and continue up that path.
You just need to rotate the character. The camera could be positioned relative to the character so it "swing" along with it as it rotates.
If you want gradient axis change ins$$anonymous$$d of trigger points, consider creating a system with a spline. $$anonymous$$ovement left/right would position along the spline. To figure out where the camera should be, you could try to make a cross product by taking a vector delta, that is the difference between players position and players position + 1 along spline and world up vector. The delta probably need to clear out any y component values and then be normalized. This would give you a direction where to offset your camera.
Your answer
Follow this Question
Related Questions
2D or 3D settings for a 2.5D game? 2 Answers
2D 360 degress platformer example needed 0 Answers
Grappling Hook in 2.5d Game 0 Answers
Is there a way I can add drawing mechanic like in "line rider" for a 3D game? 0 Answers
Locking the Z-axis based on direction 0 Answers