示例#1
0
	void RenderBoxWrap::setAutoRotation(bool _auto)
	{
		if (mAutoRotation == _auto) return;
		if (needFrameUpdate())
		{
			mAutoRotation = _auto;
			FrameAdvise(false);
		}
		else
		{
			mAutoRotation = _auto;
			FrameAdvise(true);
		}
	}
示例#2
0
	void RenderBoxWrap::setViewScale(bool _scale)
	{
		if (mUseScale == _scale) return;
		if (needFrameUpdate())
		{
			mUseScale = _scale;
			FrameAdvise(false);
		}
		else
		{
			mUseScale = _scale;
			FrameAdvise(true);
		}
	}
示例#3
0
	void State::setVisible(bool _visible)
	{
		if (_visible)
		{
			mMainWidget->setVisible(false);
			mButton1->setVisible(false);
			mButton2->setVisible(false);
			mButton3->setVisible(false);
			mButton4->setVisible(false);

			MyGUI::LayerManager::getInstance().upLayerItem(mMainWidget);
			MyGUI::LayerManager::getInstance().upLayerItem(mButton1);
			MyGUI::LayerManager::getInstance().upLayerItem(mButton2);
			MyGUI::LayerManager::getInstance().upLayerItem(mButton3);
			MyGUI::LayerManager::getInstance().upLayerItem(mButton4);

			FrameAdvise(true);
			mCountTime = 0;
		}
		else
		{
			MyGUI::ControllerFadeAlpha * controller = new MyGUI::ControllerFadeAlpha(0, 3, true);
			MyGUI::ControllerManager::getInstance().addItem(mMainWidget, controller);

			controller = new MyGUI::ControllerFadeAlpha(0, 3, true);
			MyGUI::ControllerManager::getInstance().addItem(mButton1, controller);
			controller = new MyGUI::ControllerFadeAlpha(0, 3, true);
			MyGUI::ControllerManager::getInstance().addItem(mButton2, controller);
			controller = new MyGUI::ControllerFadeAlpha(0, 3, true);
			MyGUI::ControllerManager::getInstance().addItem(mButton3, controller);
			controller = new MyGUI::ControllerFadeAlpha(0, 3, true);
			MyGUI::ControllerManager::getInstance().addItem(mButton4, controller);
		}
	}
示例#4
0
	void State::notifyFrameEvent(float _time)
	{
		mCountTime += _time;

		const int offset = 30;
		const int offset_jamp = 1;
		const MyGUI::IntSize & view = MyGUI::Gui::getInstance().getViewSize();
		const float time_diff = 0.3;

		if (!mMainWidget->isVisible()) {
			mMainWidget->setPosition(-mMainWidget->getWidth(), view.height - mMainWidget->getHeight() - offset);
			mMainWidget->setVisible(true);
			mMainWidget->setAlpha(1);

			MyGUI::IntPoint  point(offset, view.height - mMainWidget->getHeight() - offset);
			MyGUI::ControllerManager::getInstance().addItem(mMainWidget, getController(point));
		}

		if (!mButton1->isVisible()) {
			mButton1->setPosition(view.width, offset);
			mButton1->setVisible(true);
			mButton1->setAlpha(1);
			MyGUI::IntPoint point(view.width - mButton1->getWidth() - offset, offset);
			MyGUI::ControllerManager::getInstance().addItem(mButton1, getController(point));
		}

		if (mCountTime > time_diff) {
			if (!mButton2->isVisible()) {
				mButton2->setPosition(view.width, (mButton2->getHeight() + offset) + offset);
				mButton2->setVisible(true);
				mButton2->setAlpha(1);
				MyGUI::IntPoint point(view.width - mButton1->getWidth() - offset, (mButton2->getHeight() + offset) + offset);
				MyGUI::ControllerManager::getInstance().addItem(mButton2, getController(point));
			}
		}

		if (mCountTime > time_diff*2) {
			if (!mButton3->isVisible()) {
				mButton3->setPosition(view.width, (mButton3->getHeight() + offset) * 2 + offset);
				mButton3->setVisible(true);
				mButton3->setAlpha(1);
				MyGUI::IntPoint point(view.width - mButton3->getWidth() - offset, (mButton3->getHeight() + offset) * 2 + offset);
				MyGUI::ControllerManager::getInstance().addItem(mButton3, getController(point));
			}
		}

		if (mCountTime > time_diff * 3) {
			if (!mButton4->isVisible()) {
				mButton4->setPosition(view.width, (mButton4->getHeight() + offset) * 3 + offset);
				mButton4->setVisible(true);
				mButton4->setAlpha(1);
				MyGUI::IntPoint point(view.width - mButton4->getWidth() - offset, (mButton4->getHeight() + offset) * 3 + offset);
				MyGUI::ControllerManager::getInstance().addItem(mButton4, getController(point));
			}

			FrameAdvise(false);
		}

	}
示例#5
0
	void RenderBoxWrap::setAnimation(const Ogre::String& _animation)
	{
		if (nullptr != mEntityState) {
			mEntityState = nullptr;
			FrameAdvise(false);
		}

		if (_animation.empty()) return;

		if (nullptr == mEntity) return;
		Ogre::SkeletonInstance * skeleton = mEntity->getSkeleton();
		if (nullptr == skeleton) return;
		Ogre::AnimationStateSet * anim_set = mEntity->getAllAnimationStates();
		// FIXME почему вместо всего что под ним не написать как в закомментированнои коде? ¤ его добавил, но протестить немогу просто
		// посмотрел код getAnimationState - он как раз провер¤ет по имени с которым ты сравниваешь
		/*
		Ogre::AnimationState * state = anim_set->getAnimationState(_animation);
		if (state != nullptr)
		{
			// тут то что стоит внутри твоего ифа
		}
		*/
		Ogre::AnimationStateIterator iter = anim_set->getAnimationStateIterator();

		while (iter.hasMoreElements()) {
			Ogre::AnimationState * state = iter.getNext();
			if (_animation == state ->getAnimationName()) {

				// подписываемс¤
				FrameAdvise(true);

				mEntityState = state;
				mEntityState->setEnabled(true);
				mEntityState->setLoop(true);
				mEntityState->setWeight(1.0f);

				return;
			}
		}
		MYGUI_LOG(Warning, "Unable to to set animation '" << _animation << "' - current entity don't have such animation.");
	}
示例#6
0
	RenderBoxWrap::~RenderBoxWrap()
	{
		FrameAdvise(false);
		mRenderBox->removeCamera();

		mRenderBox->eventMouseDrag = nullptr;
		mRenderBox->eventMouseWheel = nullptr;
		mRenderBox->eventMouseButtonPressed = nullptr;
		mRenderBox->eventMouseButtonReleased = nullptr;
		mRenderBox->eventUpdateViewport = nullptr;

		Ogre::Root * root = Ogre::Root::getSingletonPtr();
		if (root && mScene) root->destroySceneManager(mScene);
	}
示例#7
0
	State::~State()
	{
		FrameAdvise(false);
	}
示例#8
0
文件: State.cpp 项目: JohnCrash/mygui
	void State::notifyFrameEvent(float _time)
	{
		mCountTime += _time;

		const int offset = 30;
		const float time_diff = 0.3;
		const MyGUI::IntSize& view = MyGUI::RenderManager::getInstance().getViewSize();

		if (!mMainWidget->getVisible())
		{
			mMainWidget->setPosition(-mMainWidget->getWidth(), view.height - mMainWidget->getHeight() - offset);
			mMainWidget->setVisible(true);
			mMainWidget->setAlpha(1);

			MyGUI::IntPoint  point(offset, view.height - mMainWidget->getHeight() - offset);
			MyGUI::ControllerManager::getInstance().addItem(mMainWidget, createControllerPosition(point));
		}

		if (!mButton1->getVisible())
		{
			mButton1->setPosition(view.width, offset);
			mButton1->setVisible(true);
			mButton1->setAlpha(1);
			MyGUI::IntPoint point(view.width - mButton1->getWidth() - offset, offset);
			MyGUI::ControllerManager::getInstance().addItem(mButton1, createControllerPosition(point));
		}

		if (mCountTime > time_diff)
		{
			if (!mButton2->getVisible())
			{
				mButton2->setPosition(view.width, (mButton2->getHeight() + offset) + offset);
				mButton2->setVisible(true);
				mButton2->setAlpha(1);
				MyGUI::IntPoint point(view.width - mButton1->getWidth() - offset, (mButton2->getHeight() + offset) + offset);
				MyGUI::ControllerManager::getInstance().addItem(mButton2, createControllerPosition(point));
			}
		}

		if (mCountTime > time_diff * 2)
		{
			if (!mButton3->getVisible())
			{
				mButton3->setPosition(view.width, (mButton3->getHeight() + offset) * 2 + offset);
				mButton3->setVisible(true);
				mButton3->setAlpha(1);
				MyGUI::IntPoint point(view.width - mButton3->getWidth() - offset, (mButton3->getHeight() + offset) * 2 + offset);
				MyGUI::ControllerManager::getInstance().addItem(mButton3, createControllerPosition(point));
			}
		}

		if (mCountTime > time_diff * 3)
		{
			if (!mButton4->getVisible())
			{
				mButton4->setPosition(view.width, (mButton4->getHeight() + offset) * 3 + offset);
				mButton4->setVisible(true);
				mButton4->setAlpha(1);
				MyGUI::IntPoint point(view.width - mButton4->getWidth() - offset, (mButton4->getHeight() + offset) * 3 + offset);
				MyGUI::ControllerPosition* controller = createControllerPosition(point);
				MyGUI::ControllerManager::getInstance().addItem(mButton4, controller);
				controller->eventPostAction += MyGUI::newDelegate(this, &State::notifyPostAction);
			}

			FrameAdvise(false);
		}
	}