Browse Source

Simplified controls, so that strafe left/right only moves on the X/Y plane, while up/down only moves along the Z axis.

unrollquadloop
Nico de Poel 3 years ago
parent
commit
6a3554511b
  1. 11
      input.c

11
input.c

@ -67,30 +67,24 @@ void input_process()
if (!(buttons & PAD_TRIANGLE))
{
// Move up (+Z)
cam_pos.vx += (cam_mtx.m[0][2] * moveInterval) >> 12;
cam_pos.vy += (cam_mtx.m[1][2] * moveInterval) >> 12;
cam_pos.vz += (cam_mtx.m[2][2] * moveInterval) >> 12;
cam_pos.vz += moveInterval;
}
if (!(buttons & PAD_CROSS))
{
// Move down (-Z)
cam_pos.vx -= (cam_mtx.m[0][2] * moveInterval) >> 12;
cam_pos.vy -= (cam_mtx.m[1][2] * moveInterval) >> 12;
cam_pos.vz -= (cam_mtx.m[2][2] * moveInterval) >> 12;
cam_pos.vz -= moveInterval;
}
if (!(buttons & PAD_L1))
{
// Strafe left (-X)
cam_pos.vx -= (cam_mtx.m[0][0] * moveInterval) >> 12;
cam_pos.vy -= (cam_mtx.m[1][0] * moveInterval) >> 12;
cam_pos.vz -= (cam_mtx.m[2][0] * moveInterval) >> 12;
}
if (!(buttons & PAD_R1))
{
// Strafe right (+X)
cam_pos.vx += (cam_mtx.m[0][0] * moveInterval) >> 12;
cam_pos.vy += (cam_mtx.m[1][0] * moveInterval) >> 12;
cam_pos.vz += (cam_mtx.m[2][0] * moveInterval) >> 12;
}
if (!(buttons & PAD_L2))
{
@ -152,7 +146,6 @@ void input_process()
// Strafe left/right
cam_pos.vx += (cam_mtx.m[0][0] * leftJoyX * moveInterval) >> 19;
cam_pos.vy += (cam_mtx.m[1][0] * leftJoyX * moveInterval) >> 19;
cam_pos.vz += (cam_mtx.m[2][0] * leftJoyX * moveInterval) >> 19;
// Rotate left/right
cam_rot.vz -= (rightJoyX * rotInterval) >> 7;

Loading…
Cancel
Save