游戏中的伤害值敌人伤害值,伤害数字飘飘悠悠最后消失
,我们将起归纳到Effect中,犹如粒子一样,有时间生命,资源如下:

我们根据不同的伤害选择不同的颜色,英雄对敌人伤害白色,怪物对英雄伤害红色….我们主要确定在屏幕的鼠标位置确定好我们的伤害数值的UV坐标,如我们队怪物伤害为59,分别将数字5和数字9作为粒子特效,出现消失
我们功过函数DrawNumberCharBitmap来确定每位数字的UV坐标



struct SChar


{

char c; // 字母

int x, y; // 位置

int bottom; // 底部参考坐标

int nWidth, nHeight; // 大小

DWORD dwBornTime; // 出生时间

DWORD dwLife; // 生命

float alpha;


};


enum


{

eMiss,

eNumberBlue,

eNumberRed,

eNumberGreen,

eNumberYellow,

}

struct SParticle


{

int nType; //特效类型

int nStartX, nStartY;

int x, y;

int nWidth, nHeight;

int nSrcWidth, nSrcHeight;

DWORD dwColor;

DWORD dwStartTime;

DWORD dwLastUpdateTime;

DWORD dwLife; //粒子存在时间

int nNumber; //将数值记录下来,eg:59伤害

int nNumChar; //伤害数字长度

SChar chars[eMaxChar]; //每位值都作为一个单独的粒子

};


for( int nChar = 0; nChar < pParticle->nNumChar; nChar++ ) //数字长度


{

SChar* pChar = &pParticle->chars[nChar];



DrawNumberCharBitmap( int x, int y, int w, int h, int start_line, DWORD color, int nNumber, Simple2DVertex vertex[] );

}


//确定UV坐标

void DrawNumberCharBitmap( int x, int y, int w, int h, int start_line, DWORD color, int nNumber, Simple2DVertex vertex[] )


{

static POINT index[10] =


{

0, 0,

0, 1,

0, 2,

0, 3,


0, 4,

0, 5,

0, 6,

0, 7,


1, 0,

1, 1,

};


RECT rect;

rect.left = x;

rect.top = y;

rect.right = x+w;

rect.bottom = y+h;

//

float sdv = 1.0f / 4 * start_line;

float du = 1.0f/8;

float dv = 1.0f/8;

int row = index[nNumber].x;

int col = index[nNumber].y;


float z = 0.0f;


vertex[0].p = D3DXVECTOR4( rect.left, rect.bottom, z, 1 );

vertex[0].color = color;

vertex[0].u = du*col;

vertex[0].v = sdv + dv*row+dv;


vertex[1].p = D3DXVECTOR4( rect.left, rect.top, z, 1 );

vertex[1].color = color;

vertex[1].u = du*col;

vertex[1].v = sdv + dv*row;


vertex[2].p = D3DXVECTOR4( rect.right, rect.bottom, z, 1 );

vertex[2].color = color;

vertex[2].u = du*col+du;

vertex[2].v = sdv + dv*row+dv;


vertex[3].p = D3DXVECTOR4( rect.right, rect.top, z, 1 );

vertex[3].color = color;

vertex[3].u = du*col+du;

vertex[3].v = sdv + dv*row;


}

posted on 2010-07-20 15:01
风轻云淡 阅读(995)
评论(0) 编辑 收藏 引用 所属分类:
GameDevelop