コード例 #1
0
ファイル: menu.cpp プロジェクト: fishilico/funguloids
// Update the menu
void OgreAppFrameListener::doMenu(Real delta) {
	// Update all the moving objects (enemies, ...)
	ObjectMapType::iterator i;
	ObjectSystem *ob = ObjectSystem::getSingletonPtr();
	for(i=ob->getFirst(); i != ob->getLast(); ) {
		(*i).second->move(delta);

		// Destroy objects marked for deletion
		if((*i).second->isToBeDeleted())
			ob->destroyObject(i++);
		else
			++i;
	}


	// Fade the menu selection
	gameApp->getMenu()->fadeItem(delta);

	// Scroll the menu scroller
	Overlay *scroller = OverlayManager::getSingleton().getByName("MenuScroller");
	scroller->scroll(-0.15f * delta, 0);
	if(scroller->getScrollX() < -17) scroller->setScroll(0,0);

	// Handle the state switching
	int newState = gameApp->getMenu()->getNewState();
	if(newState == -1) return;

	if(newState == STATE_GAME) {
		// Black and White off
		Viewport *vp = gameApp->getRenderWindow()->getViewport(0);
		CompositorManager::getSingleton().setCompositorEnabled(vp, "B&W", false);

		// Scroller off
		OverlayManager::getSingleton().getByName("MenuScroller")->hide();
		OverlayManager::getSingleton().getByName("TitleScreen")->hide();
		OverlayManager::getSingleton().getByName("Version")->hide();

		// Start a new game
		gameApp->startNewGame();
		newState = -1;
	}
	else if(newState == STATE_QUIT) {
		gameApp->quit();
		newState = -1;
	}
}
コード例 #2
0
ファイル: OgreOverlayManager.cpp プロジェクト: Ali-il/gamekit
    //---------------------------------------------------------------------
    void OverlayManager::_queueOverlaysForRendering(Camera* cam, 
        RenderQueue* pQueue, Viewport* vp)
    {
        bool orientationModeChanged = false;
#if OGRE_NO_VIEWPORT_ORIENTATIONMODE == 0
        orientationModeChanged = (mLastViewportOrientationMode != vp->getOrientationMode());
#endif
        // Flag for update pixel-based GUIElements if viewport has changed dimensions
        if (mLastViewportWidth != vp->getActualWidth() || 
            mLastViewportHeight != vp->getActualHeight() ||
            orientationModeChanged)
        {
            mViewportDimensionsChanged = true;
#if OGRE_NO_VIEWPORT_ORIENTATIONMODE == 0
            mLastViewportOrientationMode = vp->getOrientationMode();
#endif
            mLastViewportWidth = vp->getActualWidth();
            mLastViewportHeight = vp->getActualHeight();
        }
        else
        {
            mViewportDimensionsChanged = false;
        }

        OverlayMap::iterator i, iend;
        iend = mOverlayMap.end();
        for (i = mOverlayMap.begin(); i != iend; ++i)
        {
            Overlay* o = i->second;
#if OGRE_NO_VIEWPORT_ORIENTATIONMODE == 0
            if (orientationModeChanged)
            {
                // trick to trigger transform update of the overlay
                o->scroll(0.f, 0.f);
            }
#endif
            o->_findVisibleObjects(cam, pQueue);
        }
    }