Advertisement

Question about moving shapes...

Started by February 10, 2003 09:07 PM
2 comments, last by skittleZ 22 years ago
ok I have an Idea of what I need to do to make a shape, like a square move down periodically, like say if I had a square...if I wanted it to go down, I would have to translate the y coordinates. Lets say I had this... glVertex3f(-1.0f, 1.0f, 0.0f); glVertex3f( 1.0f, 1.0f, 0.0f); //Makes a simple square glVertex3f( 1.0f,-1.0f, 0.0f); glVertex3f(-1.0f,-1.0f, 0.0f); now if I wanted it to move down, somehow I would have to move the y coordinates down. So if im correct, to move this down it would be... glVertex3f(-1.0f, 0.0f, 0.0f); glVertex3f( 1.0f, 0.0f, 0.0f);//Moves square down 1.0 on y axis glVertex3f( 1.0f,-2.0f, 0.0f); glVertex3f(-1.0f,-2.0f, 0.0f); But how do I get the "tetris" effect of constant moving?
it's much easier to use glTranslatef

with glTranslatef, you could have something like this instead:


        //somewhere at the top of the filefloat zpos=0.0f;//in the DrawGLScene() function, after the clearglLoadIdentity();glTranslatef(0.0f,0.0f,zpos);glBegin(GL_QUADS);	glVertex3f(-1.0f, 1.0f, 0.0f); 	glVertex3f( 1.0f, 1.0f, 0.0f);	glVertex3f( 1.0f,-1.0f, 0.0f); 	glVertex3f(-1.0f,-1.0f, 0.0f);glEnd();if(keys[VK_UP])	zpos--;if(keys[VK_DOWN])	zpos++;  


and that will allow you to move the box back by pressing up and down, and you should be able to change that code to your liking (ie: make the zpos constantly subtracting, or only do it on special circumstances)

-jverkoey

-EDIT-
sorry, just realized you said y, not z, hehe

the code to move it down on the y-plane is just as simple:


  //somewhere at the top of the filefloat ypos=0.0f;//in the DrawGLScene() function, after the clearglLoadIdentity();glTranslatef(0.0f,ypos,-10.0f);glBegin(GL_QUADS);	glVertex3f(-1.0f, 1.0f, 0.0f); 	glVertex3f( 1.0f, 1.0f, 0.0f);	glVertex3f( 1.0f,-1.0f, 0.0f); 	glVertex3f(-1.0f,-1.0f, 0.0f);glEnd();if(keys[VK_UP])	ypos++;if(keys[VK_DOWN])	ypos--;  


and you can also add an x value in there to move it on the x plane.

[edited by - jverkoey on February 10, 2003 10:17:52 PM]

[edited by - jverkoey on February 10, 2003 10:18:26 PM]
Advertisement
Thnx dude, that cleared up one of my questions, but....
what about having the shape move even while your not hitting the key tho? Like having the shape constantly drop, (i.e tetris) could that work with some kind of for loop? or a loop period?
in that case, you''d just increment the variable

ypos++;

every time you draw it, so right after the glEnd(); probably

This topic is closed to new replies.

Advertisement