锘??xml version="1.0" encoding="utf-8" standalone="yes"?>
m_pID_PROGRESS_Hp->SetValue( (float)(pPlayer->GetHp()*1000)/pPlayer->GetHpMax() );
m_pID_PROGRESS_Mp->SetValue( (float)(pPlayer->GetMp()*1000)/pPlayer->GetMpMax() );
int nHp = m_pID_PROGRESS_Hp->GetValue();
int nHpTail = m_pID_PROGRESS_HpTail->GetValue();
int nMp = m_pID_PROGRESS_Mp->GetValue();
int nMpTail = m_pID_PROGRESS_MpTail->GetValue();
if( nHpTail > nHp )
{
static DWORD dwStep = 0;
dwStep = g_fHpTailSpeed * g_dwLastFrameCostTime;
if( dwStep < 1 )
{
dwStep = 1;
}
nHpTail -= dwStep;
}
else
{
nHpTail = nHp;
}
m_pID_PROGRESS_HpTail->SetValue( nHpTail );
if ( nMpTail > nMp )
{
static DWORD dwStep = 0;
dwStep = g_fMpTailSpeed * g_dwLastFrameCostTime;
if ( dwStep < 1 )
dwStep = 1;
nMpTail -= dwStep;
}
if ( nMpTail < nMp )
nMpTail = nMp;
m_pID_PROGRESS_MpTail->SetValue( nMpTail );
}
搴熻瘽涓嶈 涓婁竴涓畝鍗曠殑浠g爜
#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 鍙互寮鍚笎闅愭笎鏄?/span>
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;
}
}
}
鎴戠殑鏂規硶鏄細
1..閬嶅巻鍖呰9錛屽皢闇瑕佸彔鍔犵殑鐗╁搧鍙犲姞
2..鍐嶇敤qsort榪涜鎺掑簭 (榪欎釜鏂規硶闈炲父鐨勫ソ鐢紝灞¤瘯涓嶇埥鍟?浠栬兘灝嗛渶瑕佹帓搴忕殑鏁扮粍閲嶅啓鏁版嵁.hoho~~~)
鎺掑簭鍘熷垯錛?br>
鍏堝垽鏂墿鍝佺被鍨?>鍐嶅垽鏂墿鍝両D->鍐嶅垽鏂墿鍝佹嫢鏈夋暟閲?br>
闇瑕佹敞鎰忕殑闂鏄細闃叉鐢ㄦ埛閲嶅鐐瑰嚮 涓鐩存帓搴?br>瑙e喅鏂規硶錛氬彧鏈夋湇鍔″櫒鍥炲鎺掑簭瀹屾垚涔嬪悗錛屽鎴風鎵嶈兘鍚戞湇鍔″櫒鍙戦佹帓搴忔秷鎭?br>
鏉ユ嫻嬭瘯鐨勫皬浠g爜
// test.cpp : 瀹氫箟鎺у埗鍙板簲鐢ㄧ▼搴忕殑鍏ュ彛鐐廣?br>
//
#include "stdafx.h"
#include <vector>
#include <Windows.h>
using namespace std;


struct stElement

{
int nType;
int nCnt;
stElement( int type, int cnt )
{
nType = type;
nCnt = cnt;
}
};

int compare( const void *arg1, const void *arg2 )

{
stElement* p1 = (stElement*)arg1;
stElement* p2 = (stElement*)arg2;

if ( p1->nType < p2->nType )
{
return -1;
}else if ( p1->nType > p2->nType)
{
return 1;
}else
{
if ( p1->nCnt < p2->nCnt )
return 1;
else if ( p1->nCnt > p2->nCnt )
return -1;
else
return 0;
}
}
int _tmain(int argc, _TCHAR* argv[])

{
vector<stElement> vec;
vec.push_back( stElement(3,10) );
vec.push_back( stElement(5,10) );
vec.push_back( stElement(1,11) );
vec.push_back( stElement(2,50) );
vec.push_back( stElement(3,9) );
vec.push_back( stElement(3,20) );
vec.push_back( stElement(7,1) );
vec.push_back( stElement(3,8) );
vec.push_back( stElement(4,7) );
vec.push_back( stElement(3,8) );
vec.push_back( stElement(3,5) );
qsort( &vec[0], vec.size(), sizeof(stElement), compare );

return 0;
}
