I have set up my collisions like so:
//Object 1 coordinates x1 = 0; //Top left x y1 = 100; //Top left y x2 = 100; //Bottom right x y2 = 0; //Bottom right y //Object 2 coordinates dx1 = 0; //same layout as above.. dy1 = 300; dx2 = 100; dy2 = 200; //Object 1 glBegin(GL_QUADS); glVertex2i(0,0); glVertex2i(x2,y2); glVertex2i(100,100); glVertex2i(x1,y1); glEnd(); //Object 2 glTranslatef(0.0f, Translate, 0.0f); glBegin(GL_QUADS); glVertex2i(0,200); glVertex2i(dx2,dy2); glVertex2i(100,300); glVertex2i(dx1,dy1); glEnd();
Now, this draws two squares with the top left and bottom right corners set as variables.
When I press a key I increment the ‘Translate’ variable which moves my square down towards the other one.
My question is, how come when I begin translating, the coordinate variables dont change but the object moves. My collision test is very simple:
if ((dx1 < x2) && (dy1 < y2)) Collided!
It works if i set up each point in each square with a variable, then increment each one with a keypress. But this means 18 variables and 18 input parameters in the function, which seems wasteful.
I know its been posted before but ive not seen any actual code posted. Please can some one clarify for me. thanks a lot