Beispiel #1
0
    //---------------------------------------------------------------------
    // ● フレーム更新
    //---------------------------------------------------------------------
    void GuideNamePlate::update()
    {
		const LVector3& player_pos = GameManager::getInstance()->getPlayer()->getPosition();
		const LVector3& object_pos = mGameObject->getPosition();

		//if ( ( player_pos - object_pos ).getLength() < 200 )

		float length = (player_pos - object_pos).GetLengthSquared();

		// プレイヤーと近ければ表示
		if (!mIsNearPlayer && length < 60000)
		{
			mIsNearPlayer = true;

			mFadeOpacity.Start(mFadeOpacity.GetValue(), 1.0f, 20);

			mArrowSprite->SetVisible(true);
			mFrameSprite->SetVisible(true);
			mNameTextSprite->SetVisible(true);

#ifdef GUIDE_UNDER

			mNameTextSprite->SetPosition(pos_2d.x, pos_2d.y + 10);
#endif

		}
		// プレイヤーから離れていれば非表示
		else if (mIsNearPlayer && length >= 60000)
		{
			mIsNearPlayer = false;
			mFadeOpacity.Start(mFadeOpacity.GetValue(), 0.0f, 20);


		}

		float op = GameFrontendManager::getInstance()->getGlobalFadeOpacity() * mFadeOpacity.GetValue();

		mArrowSprite->SetOpacity(mFadeOpacity.GetValue());  // 矢印だけは Global が透明でも表示する
		mFrameSprite->SetOpacity(op);
		mNameTextSprite->SetOpacity(op);




		mFadeOpacity.AdvanceTime(1.0);


		// 完全にフェードアウトした場合は非表示にする
		if (mFadeOpacity.IsFinished() && mFadeOpacity.GetValue() == 0.0f)
		{
			mArrowSprite->SetVisible(false);
			mFrameSprite->SetVisible(false);
			mNameTextSprite->SetVisible(false);
		}
		else
		{


			// オブジェクトの座標をスクリーン座標に変換
			LVector3 pos_2d = Camera::GetMain3DCamera()->WorldToViewportPoint((object_pos + mOffsetPos));

			_setPosition(pos_2d);
		}
    }
Beispiel #2
0
 void SimpleScreen::_setGeom(const QRect & geom)
 {
     _setPosition(geom.topLeft());
     _setSize(geom.size());
 }