# moving the ball

In lesson 26 (nehe) , i want to move the ball to cross 4 points in the floor, but i dont know. please help me. thank you very much!

If you posted a link to the tutorial you are having trouble with, it would be easier to help you.

here is code :
http://nehe.gamedev.net/data/lessons/vc/lesson26.zip
i want to move the ball to another points ( as clip), i need sb help me.
ex: When i press key ‘z’, the ball moving.
from (1) position -> (2) ->(3) -> (4) (repeat)
My code :

void Drawball()
{
gltranslate(a,b,c);
Drawobject();
}
void processkeyboard(){
if(keys[‘Z’])
{
int k;
for(k=0;k<3,k++)
{
a = a[k];
b = b[k];
c = c[k];
DrawBall();
}
}
But the ball only move to (2) position. and it’s not like moving the ball. Please help me

If you want to create an animation you have to draw the sphere in different position in each frame.
If you want to move an object from A to B in 10 seconds at frame 0 the object will be in the point A, in the frame 1 will be in the point A + deltaT/10 * (B-A)
where deltaT is the time between a frame and another.
So you will have a code like this

``````
time = 0;
init(){
A = StartPosition
B = EndPosition
}

draw()
{
time += deltaT;
if(time < endAnimation)
actualPosition = A + (time/endAnimation)*(B-A)
else
actualPosition = B;
glTranslate(actualPosition);
drawObject();
glSwapBuffers()
}

``````

To have a smooth animation you have to call the draw function at least 30 times for seconds.

Thank you. But i understand a little your code.
What’s endAnimation ? “A = StartPosition” is : Gldouble A[3] = {a1,a2,a3 ) , isn’t it?
And I want the ball from A (start position) run to B, then run to C, then run to C…, not only from A to B.
I’m a newbie, so i need heper of…

If you have point A, B, C, D;
at init time set
start = A
end = B
then then the animation is finished reset the timer and set
start = B
end = C
and so on.

I usually write meta code when the implementation is not important. When I write
start = A
is only a conceptual starting point A
I don’t care if this is a 3d point or 2d, or if it’s a GLfloat or GLdouble or is you have a class representing points.
“If you have point A, B, C, D;”
I don’t care is you have four variable or a vector, this is up to you.