廢話不說 上一個簡單的代碼
#define UI_FADE_SPEED 1
#define UI_MOVE_SPEED 1
// 設置移動目標
void SetMove( int nDstX, int nDstY )


{
m_nMoveToX = nDstX;
m_nMoveToY = nDstY;
m_dwMoveStartTime = TimeGetTime();
}
// 移動 Updating
if ( m_bMoving )


{
int na = m_nMoveToY - rcReal.top;
int nb = m_nMoveToX - rcReal.left;
int nc = sqrt( ( FLOAT )( na * na ) + ( FLOAT )( nb * nb ) );
int nX = 0;
int nY = 0;
int nMoveDistance = UI_MOVE_SPEED * ( TimeGetTime() - m_dwMoveStartTime );
if ( nMoveDistance >= nc )

{
m_bMoving = false;
nX = m_nMoveToX;
nY = m_nMoveToY;
}
else

{
nX = nMoveDistance * nb / nc + rcReal.left;
nY = nMoveDistance * na / nc + rcReal.top;
}
SetPos( nX, nY );
}

// 顯示UI 可以開啟漸隱漸顯
void SetVisable( bool bVisable , bool bFadeInOrOut = false , int nCurAlpha = 0x88, int nMaxAlpha = 0xFF, int nMinAlpha = 0x00 )


{
m_bVisable = bVisable;
m_nFadeCurColorA = nCurAlpha;
m_bFadeInorFadeOut = bFadeInOrOut;
if ( bVisable )
m_dwFadeStartTime = TimeGetTime();
}

// 淡入淡出 Rendering
if ( m_bFadeInorFadeOut )


{
if ( IsVisable() )

{
m_nFadeCurColorA = UI_FADE_SPEED * ( TimeGetTime() - m_dwFadeStartTime );
if ( m_nFadeCurColorA >= m_nMaxFade )

{
m_nFadeCurColorA = m_nMaxFade;
m_bFadeInorFadeOut = false;
}
}
else

{
m_nFadeCurColorA = 0xff - UI_FADE_SPEED * ( TimeGetTime() - m_dwFadeStartTime );
if ( m_nFadeCurColorA <= m_nMinFade )

{
m_nFadeCurColorA = m_nMinFade;
m_bFadeInorFadeOut = false;
}
}
}
#define UI_MOVE_SPEED 1
// 設置移動目標
void SetMove( int nDstX, int nDstY )

{
m_nMoveToX = nDstX;
m_nMoveToY = nDstY;
m_dwMoveStartTime = TimeGetTime();
}
// 移動 Updating
if ( m_bMoving )

{
int na = m_nMoveToY - rcReal.top;
int nb = m_nMoveToX - rcReal.left;
int nc = sqrt( ( FLOAT )( na * na ) + ( FLOAT )( nb * nb ) );
int nX = 0;
int nY = 0;
int nMoveDistance = UI_MOVE_SPEED * ( TimeGetTime() - m_dwMoveStartTime );
if ( nMoveDistance >= nc )
{
m_bMoving = false;
nX = m_nMoveToX;
nY = m_nMoveToY;
}
else
{
nX = nMoveDistance * nb / nc + rcReal.left;
nY = nMoveDistance * na / nc + rcReal.top;
}
SetPos( nX, nY );
}
// 顯示UI 可以開啟漸隱漸顯
void SetVisable( bool bVisable , bool bFadeInOrOut = false , int nCurAlpha = 0x88, int nMaxAlpha = 0xFF, int nMinAlpha = 0x00 )

{
m_bVisable = bVisable;
m_nFadeCurColorA = nCurAlpha;
m_bFadeInorFadeOut = bFadeInOrOut;
if ( bVisable )
m_dwFadeStartTime = TimeGetTime();
}
// 淡入淡出 Rendering
if ( m_bFadeInorFadeOut )

{
if ( IsVisable() )
{
m_nFadeCurColorA = UI_FADE_SPEED * ( TimeGetTime() - m_dwFadeStartTime );
if ( m_nFadeCurColorA >= m_nMaxFade )
{
m_nFadeCurColorA = m_nMaxFade;
m_bFadeInorFadeOut = false;
}
}
else
{
m_nFadeCurColorA = 0xff - UI_FADE_SPEED * ( TimeGetTime() - m_dwFadeStartTime );
if ( m_nFadeCurColorA <= m_nMinFade )
{
m_nFadeCurColorA = m_nMinFade;
m_bFadeInorFadeOut = false;
}
}
}

