Я пытаюсь создать прыгающий шар, который может перемещаться в координатах x, y и z. Сначала мяч начинает пару единиц по оси Y над началом. Мне удалось выяснить, как заставить мяч отскочить вверх и вниз в плоскости y, но у меня проблемы с выяснением того, что я делаю неправильно, когда я пытаюсь добавить траектории x и z.Отскок анимации с OpenGL
double initialVelocity = userInputY;
double initVelX = userInputX;
double initVelZ = userInputZ;
double speed = 1/500.0;
double time = 0;
double x, y, z =0;
if (time == 0){
velocity+= initialVelocity;
}
time += speed
velocity = velocity - 9.8 * speed;
if (y+velocity < 0.1){ //collision detection against the floor
velocity *= -1;
}
if (z + initVelZ < 100){ //Collision detection for ceiling of 100 units
initVelZ *= -1;
}
if (x + initVelX < 50){ //Collision detection for if ball moves 50 units away from origin in x
initVelX *= -1;
}
else{
y += velocity;
x += initVelX;
z += initVelZ;
}
gl.gltranslated(x, y, z);
glu.gluSphere() //not really that important to specify
Когда я использую только свою переменную y, мой шар имеет прыгающую анимацию, но только движется вверх и вниз.