Yes, that makes sense,
I have an array of "jellyfish" that randomly move around the world, however, once they are a certain distance away, I need them to come back into the centre of the camera view. I'm struggling to see how I can derive the correct rotation that points to the centre of the camera view.(the camera is static)
I have an array of "jellyfish" that randomly move around the world, however, once they are a certain distance away, I need them to come back into the centre of the camera view. I'm struggling to see how I can derive the correct rotation that points to the centre of the camera view.(the camera is static)
Code Select
private void animate()
{
if (aniFrame > 0)
{
ind += INC_FRACTION * aniFrame;
if (ind > 1) {
ind -= 1;
aniFrame = 0;
}
for (int i = 0; i < jellyFishAmount; i++)
{
jellyFishClones[i].animate(ind); //apply the new animation frame
movedDistance[i] += MOVE_SPEED; //increase the directional change
if (roam[i]&&aniFrame%2==0) //only change direction every second call and if the jellyfish hasn't left the "safe area"
{
jellyFishClones[i].rotateX(random.nextFloat()*0.5f);
jellyFishClones[i].rotateY(random.nextFloat()*0.5f);
}
if (centerVec.distance(jellyFishClones[i].getTranslation()) > 200f)
{
if (roam[i])
{
jellyFishClones[i].rotateX(centerVec.calcAngle(jellyFishClones[i].getXAxis()));
jellyFishClones[i].rotateY(centerVec.calcAngle(jellyFishClones[i].getYAxis()));
jellyFishClones[i].rotateZ(centerVec.calcAngle(jellyFishClones[i].getZAxis()));
//jellyFishClones[i].clearTranslation();
movedDistance[i] = 0;
}
roam[i] = false;
if (centerVec.distance(jellyFishClones[i].getTranslation()) < 10f)
{
roam[i] = true; //set the jellyfish back to randomly roaming
}
}
directionalVec[i] = jellyFishClones[i].getZAxis();
directionalVec[i].scalarMul(movedDistance[i]);
jellyFishClones[i].translate(directionalVec[i]);
}
}
}