• <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>

            游戲編程

            常用鏈接

            統(tǒng)計(jì)

            最新評(píng)論

            2D游戲開(kāi)發(fā)(4):魔法技能

            魔法技能 和人物動(dòng)畫(huà)原理一樣,下面是我的一個(gè)簡(jiǎn)單實(shí)現(xiàn)的源代碼

            /////////
            //Magic.h
            //
            #pragma  once

            #include "Texture.h"

            class CMagic
            {
            public:
             LONG m_ClientX;
             LONG m_ClientY;
             CTexture* m_Textures;
             int  m_NumTextures;
             int  m_CurrentTexIndex;

             virtual void Draw();
             virtual void Load();
             virtual void Update();


            };

            class CMoveMagic : public CMagic
            {
            public:
             LONG m_OrigiClientX;
             LONG m_OrigiClientY;
             LONG m_EndClientX;
             LONG m_EndClientY;

             LONG m_CurrentClientX;
             LONG m_CurrentClientY;


             int  m_Speend;

             virtual void Draw();
             virtual void Load();
             virtual void Update();


            };


            ////
            //Magic.cpp
            /////

            #include "stdafx.h"
            #include "Magic.h"

            void CMagic::Draw()
            {
             CRect rect(0,0,m_Textures[m_CurrentTexIndex].m_Width,m_Textures[m_CurrentTexIndex].m_Height);
             m_Textures[m_CurrentTexIndex].Draw(m_ClientX,m_ClientY,rect);
            }

            void CMagic::Load()
            {
             m_ClientX = 90;
             m_ClientY = 0;
             m_NumTextures = 10;
             m_Textures = new CTexture[10];
             m_CurrentTexIndex = 0;

             m_Textures[0].LoadEx("D:\\2DGameEngine\\Magic\\000280.bmp",72,54);
             m_Textures[1].LoadEx("D:\\2DGameEngine\\Magic\\000281.bmp",160,117);
             m_Textures[2].LoadEx("D:\\2DGameEngine\\Magic\\000282.bmp",164,131);
             m_Textures[3].LoadEx("D:\\2DGameEngine\\Magic\\000283.bmp",168,148);
             m_Textures[4].LoadEx("D:\\2DGameEngine\\Magic\\000284.bmp",148,153);
             m_Textures[5].LoadEx("D:\\2DGameEngine\\Magic\\000285.bmp",100,98);
             m_Textures[6].LoadEx("D:\\2DGameEngine\\Magic\\000286.bmp",120,220);
             m_Textures[7].LoadEx("D:\\2DGameEngine\\Magic\\000287.bmp",160,213);
             m_Textures[8].LoadEx("D:\\2DGameEngine\\Magic\\000288.bmp",140,157);
             m_Textures[9].LoadEx("D:\\2DGameEngine\\Magic\\000289.bmp",88,90);
            }

            void CMagic::Update()
            {
             m_CurrentTexIndex++;
             if(m_CurrentTexIndex>9)
              m_CurrentTexIndex = 0;
            }

            //////////////////////////////////////////////////////////////////////////
            ////////
            void CMoveMagic::Draw()
            {
             CRect rect(0,0,m_Textures[m_CurrentTexIndex].m_Width,m_Textures[m_CurrentTexIndex].m_Height);
             m_Textures[m_CurrentTexIndex].Draw(m_CurrentClientX,m_CurrentClientY,rect);
            }

            void CMoveMagic::Load()
            {

              m_NumTextures = 8;
              m_Textures = new CTexture[8];
              m_CurrentTexIndex = 0;
             
              m_Textures[0].LoadEx("D:\\2DGameEngine\\Magic\\000180.bmp",40,36);
              m_Textures[1].LoadEx("D:\\2DGameEngine\\Magic\\000181.bmp",40,22);
              m_Textures[2].LoadEx("D:\\2DGameEngine\\Magic\\000182.bmp",40,23);
              m_Textures[3].LoadEx("D:\\2DGameEngine\\Magic\\000183.bmp",40,36);
              m_Textures[4].LoadEx("D:\\2DGameEngine\\Magic\\000184.bmp",36,50);
              m_Textures[5].LoadEx("D:\\2DGameEngine\\Magic\\000185.bmp",40,37);
              m_Textures[6].LoadEx("D:\\2DGameEngine\\Magic\\000186.bmp",40,23);
              m_Textures[7].LoadEx("D:\\2DGameEngine\\Magic\\000187.bmp",40,21);
             
             m_OrigiClientX = 0;
             m_OrigiClientY = 80;
             m_EndClientX = 280;
             m_EndClientY = 80;

             m_CurrentClientX = m_OrigiClientX;
             m_CurrentClientY = m_OrigiClientY;
             
             m_Speend = 30;
            }

            void CMoveMagic::Update()
            {
             m_CurrentClientX += m_Speend;
             if(m_CurrentClientX>m_EndClientX)
              m_CurrentClientX = 0;

             m_CurrentTexIndex = (m_CurrentClientX-m_OrigiClientX)*7/(m_EndClientX-m_OrigiClientX);
            }

            posted on 2009-02-21 02:20 Arcadia-er 閱讀(172) 評(píng)論(0)  編輯 收藏 引用


            只有注冊(cè)用戶(hù)登錄后才能發(fā)表評(píng)論。
            網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問(wèn)   Chat2DB   管理


            久久噜噜电影你懂的| 中文国产成人精品久久不卡| 久久综合中文字幕| 亚洲七七久久精品中文国产| 久久99久国产麻精品66| 99久久精品日本一区二区免费| 99久久国产热无码精品免费久久久久 | 97久久精品人人做人人爽| 久久久久久国产a免费观看不卡| 51久久夜色精品国产| 无码国内精品久久人妻麻豆按摩| 99久久这里只精品国产免费| 国产精品久久久久久久久免费| 久久久久18| 国产高清国内精品福利99久久| 亚洲精品无码久久久久sm| 伊人久久亚洲综合影院| 国产精品久久久天天影视香蕉| 久久婷婷成人综合色综合| 国产午夜精品久久久久九九电影| 综合网日日天干夜夜久久| 久久久久国产| 色综合久久中文色婷婷| 91精品国产91久久综合| 久久婷婷国产综合精品 | 97久久国产露脸精品国产| 久久激情五月丁香伊人| 久久99国产精品99久久| 奇米影视7777久久精品人人爽 | 久久精品国产福利国产琪琪| 久久精品国产精品青草app| 久久久久亚洲av无码专区喷水| 亚洲色欲久久久久综合网 | 精品国产福利久久久| 99久久精品费精品国产一区二区| 亚洲综合伊人久久大杳蕉| 影音先锋女人AV鲁色资源网久久| 中文字幕久久精品无码| 欧美牲交A欧牲交aⅴ久久 | 日批日出水久久亚洲精品tv| 亚洲国产成人久久综合碰|