📄 guifadeinbitmapctrl.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 + -