Need help from u all

am a newbie here!!!

making a 2D project, snap link is given below

http://i238.photobucket.com/albums/ff224/umairqureshi_6/back.png

here i have to blast the ship which is moving downward on x-axis

with a cannon ball ,on the mountain

the function i am using for projectile trajectory is

----------------------------------------------------

void ball(int xx,int yy)

{

glRasterPos2i(xx,yy);

pix[7].mDraw();

glutSwapBuffers();

}

void ballMove(void)

{

calculateY(xx);

}

void calculateY(int xx)

{

yy= (xx*tan(angle*3.14/180))-(g*pow((float)xx, 2))/(2*(pow(u, 2))*(pow(cos(angle*3.14/180), 2)));

glRasterPos2i(xx+50,yy+520);

pix[7].mDraw();

if(xx>PosX-90 && xx<PosX+90 && yy>PosY-80 && yy<PosY+80)

{

glRasterPos2i(xx+50,yy+520);

pix[10].mDraw();

position=true;

}

glutSwapBuffers();

glutTimerFunc(10, calculateY , xx+5);

}

void pressKey(unsigned char key, int abc, int xyz)

{

switch(key)

{

case 'a':

{

if (state==1)

{

u=40;

angle=85;

ballMove();

break;

}.....

------------------------------

when i press 'a', ball starts to follow projectile trajectory and hit the ship

kindly help me out

Problems are :

1) i dont want to use glutSwapBuffers(); other than display function

it is possible?

2)if i keep the angle about 80, speed of ball is fast,but if i changed the angle to 30,speed of ball is too much slow

3) which equation should i use to calculate projectile ??

waiting for positive response