Cameras switch only after a set amount of seconds

This commit is contained in:
James Alliban
2014-01-16 21:04:00 +00:00
parent e51abf7a53
commit 6c6cc02dea
22 changed files with 70 additions and 32 deletions
-2
View File
@@ -17,8 +17,6 @@ void DataManager::setup()
}
setupSpacebrew();
nextDataSendTime = 0.1;
}
+1
View File
@@ -176,6 +176,7 @@ void GUI::addCameraGUI()
gui->addSlider("Cam" + ofToString(i) + " Direction Point Y", 0, 150, &app->scene.cameras[i].lookAtVec.y, length, dim);
gui->addSlider("Cam" + ofToString(i) + " Rotation Speed", -2, 2, &app->scene.cameras[i].rotSpeed, length, dim);
gui->addSlider("Cam" + ofToString(i) + " Swap Probablity (per frame)", 0.001, 0.1, &app->scene.cameras[i].swapProbability, length, dim);
gui->addSlider("Cam" + ofToString(i) + " Min Seconds Before Swapping", 0.5, 10, &app->scene.cameras[i].minSecondsBeforeSwapping, length, dim);
}
finaliseCanvas(gui, true);
+5
View File
@@ -7,11 +7,14 @@ void Camera::setup(int _camID)
lookAtNode.setPosition(0, 0, 0);
setDistance(100);
minSecondsBeforeSwapping = 2;
isReadyForSwap = false;
}
void Camera::update()
{
if (ofGetElapsedTimef() - timeBecameActive > minSecondsBeforeSwapping)
isReadyForSwap = true;
positionVec.x = sin(ofGetElapsedTimef() * rotSpeed) * distance;
//positionVec.y = 40;
@@ -25,10 +28,12 @@ void Camera::update()
void Camera::activate()
{
isReadyForSwap = false;
timeBecameActive = ofGetElapsedTimef();
}
void Camera::deactivate()
{
isReadyForSwap = false;
}
+2
View File
@@ -30,4 +30,6 @@ public:
float swapProbability;
float minSecondsBeforeSwapping;
float timeBecameActive;
bool isReadyForSwap;
};
+3 -4
View File
@@ -37,17 +37,17 @@ void Scene::update()
{
if (activeCamera->camID == 0)
{
if (ofRandom(1) < activeCamera->swapProbability)
if (ofRandom(1) < activeCamera->swapProbability && activeCamera->isReadyForSwap)
switchCamera();
}
else if (activeCamera->camID == 1)
{
if (ofRandom(1) < activeCamera->swapProbability)
if (ofRandom(1) < activeCamera->swapProbability && activeCamera->isReadyForSwap)
switchCamera();
}
else if (activeCamera->camID == 2)
{
if (ofRandom(1) < activeCamera->swapProbability)
if (ofRandom(1) < activeCamera->swapProbability && activeCamera->isReadyForSwap)
switchCamera();
}
}
@@ -143,7 +143,6 @@ void Scene::switchCamera()
if (activeCamera->camID == 2)
newCamID = (ofRandom(2) < 0.5) ? 0 : 1;
printf("************ changing cameras to %i ************** \n", newCamID);
activeCamera->deactivate();
activeCamera = &cameras[newCamID];
activeCamera->activate();