Esempio n. 1
0
//--------------------------------------------------------------
void ofxSceneManager::gotoScene(unsigned int index, bool now) {
	if(_scenes.empty() || index >= _scenes.size() ||
	   _sceneChangeTimer.getDiff() < _minChangeTimeMS)
		return;

	ofxScene* s;
	if(_currentScene == (int) index) {
		ofLogWarning("ofxSceneManager") << "ignoring duplicate goto scene change";
		return;
	}

	if(!now) {
	
		// tell current scene to exit
		if(_currentScene > SCENE_NONE) {
			s = _currentScenePtr;
			s->startExiting();
		}

		// tell new scene to enter
		s = getSceneAt(index);
		s->startEntering();
//--------------------- <CAMBIOS MASOTROS> ---------------------//
        _newRunnerScenePtr = _getRunnerSceneAt(index);
//--------------------- </CAMBIOS MASOTROS> ---------------------//
	}
	
	_newScene = index;
	_bChangeNow = now;
    
    ofLogVerbose("ofxSceneManager") << "GOTO SCENE: " << _newScene;
}
Esempio n. 2
0
//--------------------------------------------------------------
void ofxSceneManager::changeToNewScene() {
	
	_currentScene = _newScene;
	_currentRunnerScenePtr = _getRunnerSceneAt(_currentScene);
	
	if(_currentRunnerScenePtr) {
		_currentScenePtr = _currentRunnerScenePtr->scene;
		ofLogVerbose("ofxSceneManager") << "changed to " << _currentScene
			<< " \"" << _currentScenePtr->getName() << "\"";
	}
	else {
		_currentScenePtr = NULL;
		ofLogVerbose("ofxSceneManager") << "changed to NO_SCENE";
	}
	
	_newScene = SCENE_NOCHANGE; // done
	_bSignalledAutoChange = false;
	_sceneChangeTimer.set();
}
Esempio n. 3
0
ofxScene* ofxSceneManager::getSceneAt(unsigned int index) {
	ofxScene::RunnerScene* rs = _getRunnerSceneAt(index);
	return rs == NULL ? NULL : rs->scene;
}