• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            隨筆 - 132  文章 - 51  trackbacks - 0
            <2025年6月>
            25262728293031
            1234567
            891011121314
            15161718192021
            22232425262728
            293012345

            常用鏈接

            留言簿(7)

            隨筆分類

            隨筆檔案

            文章分類

            文章檔案

            cocos2d-x

            OGRE

            OPenGL

            搜索

            •  

            最新評(píng)論

            閱讀排行榜

            評(píng)論排行榜

             

            游戲中的傷害值敵人傷害值,傷害數(shù)字飄飄悠悠最后消失 ,我們將起歸納到Effect中,猶如粒子一樣,有時(shí)間生命,資源如下:

            我們根據(jù)不同的傷害選擇不同的顏色,英雄對(duì)敵人傷害白色,怪物對(duì)英雄傷害紅色….我們主要確定在屏幕的鼠標(biāo)位置確定好我們的傷害數(shù)值的UV坐標(biāo),如我們隊(duì)怪物傷害為59,分別將數(shù)字5和數(shù)字9作為粒子特效,出現(xiàn)消失

            我們功過函數(shù)DrawNumberCharBitmap來確定每位數(shù)字的UV坐標(biāo)

             



                   

                          
            struct SChar

                          
            {

                                 
            char c;                                // 字母

                                 
            int           x, y;                      // 位置

                                 
            int           bottom;                        // 底部參考坐標(biāo)

                                 
            int           nWidth, nHeight;    // 大小

                                 DWORD dwBornTime;                
            // 出生時(shí)間

                                 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;                                      
            //粒子存在時(shí)間

                                 
            int           nNumber;                                   //將數(shù)值記錄下來,eg:59傷害

                                 
            int           nNumChar;                                 //傷害數(shù)字長(zhǎng)度

                                 SChar     chars[eMaxChar];                
            //每位值都作為一個(gè)單獨(dú)的粒子

                          }
            ;

                          

                          
            forint nChar = 0; nChar < pParticle->nNumChar; nChar++ )    //數(shù)字長(zhǎng)度

                          
            {

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

                                 

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

                          }


                          

                          
            //確定UV坐標(biāo)

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

                          
            {

                                 
            static POINT index[10=

                                 
            {

                                        
            00,

                                        
            01

                                        
            02,

                                        
            03,

             

                                        
            04,

                                        
            05,

                                        
            06,

                                        
            07,

             

                                        
            10,

                                        
            11,

                                 }
            ;

             

                                 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 風(fēng)輕云淡 閱讀(1020) 評(píng)論(0)  編輯 收藏 引用 所屬分類: GameDevelop
            久久se精品一区二区| 亚洲综合婷婷久久| 久久久久久精品免费免费自慰| 久久综合视频网站| 久久国产欧美日韩精品| 久久精品天天中文字幕人妻 | 94久久国产乱子伦精品免费| 久久国产成人午夜AV影院| 久久亚洲sm情趣捆绑调教| 国产午夜久久影院| 热久久视久久精品18| 国产精品丝袜久久久久久不卡| 久久久久亚洲精品日久生情 | 久久精品国产第一区二区| 亚洲精品国精品久久99热一| 99热热久久这里只有精品68| 欧美亚洲色综久久精品国产| 欧美久久亚洲精品| 观看 国产综合久久久久鬼色 欧美 亚洲 一区二区 | 久久AAAA片一区二区| 久久久无码精品亚洲日韩按摩| 香蕉99久久国产综合精品宅男自| 久久av无码专区亚洲av桃花岛| 中文成人无码精品久久久不卡| 日韩欧美亚洲综合久久影院d3| 久久中文骚妇内射| 伊人久久精品无码av一区| 四虎久久影院| 久久精品极品盛宴观看| 亚洲国产成人精品久久久国产成人一区二区三区综 | 久久午夜综合久久| 国产亚洲精午夜久久久久久| 伊人久久综合热线大杳蕉下载| 国产精品久久久久无码av| 99久久无色码中文字幕| 99久久综合狠狠综合久久止| 国产一区二区三区久久| 中文字幕亚洲综合久久| 久久精品国产一区二区三区| 国产精品亚洲美女久久久| 久久久久亚洲精品中文字幕|