随笔 - 132  文章 - 51  trackbacks - 0
<2011年4月>
272829303112
3456789
10111213141516
17181920212223
24252627282930
1234567

常用链接

留言簿(7)

随笔分类

随笔档案

文章分类

文章档案

cocos2d-x

OGRE

OPenGL

搜索

  •  

最新评论

阅读排行榜

评论排行榜

UI的移动和渐隐渐显 实现简单却能给游戏加载或场景过度一个不错的效果

废话不说 上一个简单的代码

#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 = 0x88int nMaxAlpha = 0xFFint 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;
        }

    }

}
posted on 2010-12-29 10:39 风轻云淡 阅读(411) 评论(0)  编辑 收藏 引用 所属分类: UI

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理