⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 guifadeinbitmapctrl.cc

📁 五行MMORPG引擎系统V1.0
💻 CC
字号:
//-----------------------------------------------------------------------------
// Torque Game Engine
//
// Copyright (c) 2001 GarageGames.Com
//-----------------------------------------------------------------------------

#include "console/console.h"
#include "console/consoleTypes.h"
#include "dgl/dgl.h"

#include "gui/game/guiFadeinBitmapCtrl.h"
//#include "gui/controls/guiBitmapCtrl.h"

//class GuiFadeinBitmapCtrl : public GuiBitmapCtrl
//{
//   typedef GuiBitmapCtrl Parent;
//public:
//   U32 wakeTime;
//   bool done;
//   U32 fadeinTime;
//   U32 waitTime;
//   U32 fadeoutTime;
//
//   GuiFadeinBitmapCtrl()
//   {
//      wakeTime    = 0;
//      fadeinTime  = 1000;
//      waitTime    = 2000;
//      fadeoutTime = 1000;
//      done        = false;
//   }
void GuiFadeinBitmapCtrl::onPreRender()
   {
      Parent::onPreRender();
      setUpdate();
   }
   void GuiFadeinBitmapCtrl::onMouseDown(const GuiEvent &)
   {
      Con::executef(this, 1, "click");
   }
   bool GuiFadeinBitmapCtrl::onKeyDown(const GuiEvent &)
   {
      Con::executef(this, 1, "click");
      return true;
   }
   //DECLARE_CONOBJECT(GuiFadeinBitmapCtrl);
   bool GuiFadeinBitmapCtrl::onWake()
   {
      if(!Parent::onWake())
         return false;
      wakeTime = Platform::getRealMilliseconds();
      return true;
   }
   void GuiFadeinBitmapCtrl::onRender(Point2I offset, const RectI &updateRect)
   {
      Parent::onRender(offset, updateRect);
      U32 elapsed = Platform::getRealMilliseconds() - wakeTime;

      U32 alpha;
      if (elapsed < fadeinTime)
      {
         // fade-in
         alpha = 255 - (255 * (F32(elapsed) / F32(fadeinTime)));
      }
      else if (elapsed < (fadeinTime+waitTime))
      {
         // wait
         alpha = 0;
      }
      else if (elapsed < (fadeinTime+waitTime+fadeoutTime))
      {
         // fade out
         elapsed -= (fadeinTime+waitTime);
         alpha = 255 * F32(elapsed) / F32(fadeoutTime);
      }
      else
      {
         // done state
         alpha = fadeoutTime ? 255 : 0;
         done = true;
      }
      ColorI color(0,0,0,alpha);
      dglDrawRectFill(offset, mBounds.extent + offset, color);
   }
   /*static*/ void GuiFadeinBitmapCtrl::initPersistFields()
   {
      Parent::initPersistFields();
      addField("fadeinTime", TypeS32, Offset(fadeinTime, GuiFadeinBitmapCtrl));
      addField("waitTime", TypeS32, Offset(waitTime, GuiFadeinBitmapCtrl));
      addField("fadeoutTime", TypeS32, Offset(fadeoutTime, GuiFadeinBitmapCtrl));
      addField("done", TypeBool, Offset(done, GuiFadeinBitmapCtrl));
   }
//};

IMPLEMENT_CONOBJECT(GuiFadeinBitmapCtrl);

























⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -