Hi, guys, i am totally newbie in OpenGL, now I am studying on movement
in OpenGL, and I can control a square’s movement, but it seems cannot do
a smooth movement such as diagonal movement when i press UP and LEFT, it
cannot keep moving towards diagonal direction, I dont know how, can
anyboday explain in details to me?? thanks a lot and best regards!!!
Please log in or register to post a reply.
the problem (i guess) is that you use a switch and break after your
cases. in the code you posted at gamedev, you check for up, and break
out of it while not checking other cases, so if you press both up and
left you don’t move diagonal but only in the up direction. like people
said on gamedev, use ifs and check all combinations.
You don’t have to check all combinations. You just check for the 4
basics without using any elses or a switch/case.
if( key == GLUT_KEY_UP )
b += 5.5f;
if( key == GLUT_KEY_DOWN )
b -= 5.5f;
if( key == GLUT_KEY_LEFT )
a -= 5.5f;
if( key == GLUT_KEY_RIGHT )
a += 5.5f;
that’s what i meant with all combinations, in stead of stopping checking
after the first ‘hit’, checking all other possibilities that are left