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

Loading…
Cancel
Save