• <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>
            隨筆 - 96  文章 - 255  trackbacks - 0
            <2008年2月>
            272829303112
            3456789
            10111213141516
            17181920212223
            2425262728291
            2345678

            E-mail:zbln426@163.com QQ:85132383 長期尋找對戰略游戲感興趣的合作伙伴。

            常用鏈接

            留言簿(21)

            隨筆分類

            隨筆檔案

            SDL相關網站

            我的個人網頁

            我的小游戲

            資源下載

            搜索

            •  

            積分與排名

            • 積分 - 492164
            • 排名 - 38

            最新評論

            閱讀排行榜

            評論排行榜

            作者:龍飛 

                   這兩天下雨,所以就暫停了尋春的步伐,多寫了點教程。綿陽的春天是美麗的,大家學習和寫程序之余,還是應該多看看大自然。給大家推薦我拍的風景照啦,呵呵。http://picasaweb.google.com/firefly.cao
                    因為不想多上傳圖片,所以我的例子中的圖片文件直接就用Lazy Foo's教程中的附件了。相關資源,大家可以在這里下載:Clip Blitting and Sprite Sheets

            1.1:什么是精靈?

                    如果有很多很多的圖片,不想發布游戲的時候包含n多小小的圖片文件,那么可以考慮把小圖片都畫在一張大圖上,然后“摳”下來用,不也是很方便嗎?這張大圖就叫精靈圖(Sprite sheet)。每一個摳下來的圖片就叫精靈啦。
                    精靈只是一種技巧,需要的知識,我們前面都已經學習過了。我們稍微修改一下類,就可以很好的演示這個技術實現。

            1.2:填充背景的顏色

            int SDL_FillRect(SDL_Surface *dst, SDL_Rect *dstrect, Uint32 color);
                    這個函數是往一個指定surface的指定矩形區域中填充指定的顏色。如果指定矩形區域為空指針,則填充整個surface。值得注意的是,SDL_Surface結構中包含矩形區域的只讀成員數據是clip_rect。我們為ScreenSurface類增加一個方法,默認填充黑色。
            class ScreenSurface
            {
            private:
                
            //
            public:
                
            //
                void fillColor(Uint8 r = 0, Uint8 g = 0, Uint8 b = 0const;
            };
            實現為:
            void ScreenSurface::fillColor(Uint8 r, Uint8 g, Uint8 b) const
            {
                 
            if ( SDL_FillRect(pScreen, 0, SDL_MapRGB(pScreen->format, r, g, b)) < 0 )
                     
            throw ErrorInfo(SDL_GetError());
            }

            1.3:思路

                    我們先創建一個ScreenSurface對象,并將其填充為白色作為背景。裝載精靈圖之后,先摳掉精靈圖的背景色,然后按照區域,分4次將4個圖片小精靈blit到背景上。非常簡單!需要說明的是,我修改了局部blit()方法偏移值的默認參數值。因為在之前的章節中,局部blit()主要用于blit部分背景將背景“搽干凈”,需要將偏移設為非零;而我們現在使用這個方法的主要目的是摳精靈圖片,如果偏移非零的話就會把設定范圍之外的圖像也摳過來,而這不是我們希望發生的。下節給出完整源代碼。
            posted on 2008-03-20 12:36 lf426 閱讀(3222) 評論(0)  編輯 收藏 引用 所屬分類: SDL入門教程
            久久被窝电影亚洲爽爽爽| 久久久久久亚洲精品影院| 久久亚洲日韩看片无码| 亚洲午夜无码久久久久| 亚洲va久久久噜噜噜久久| 久久久久久综合一区中文字幕 | 色播久久人人爽人人爽人人片aV| 亚洲精品乱码久久久久久不卡| 奇米影视7777久久精品人人爽| 77777亚洲午夜久久多人| 久久99精品久久久久久不卡 | 久久91精品综合国产首页| 亚洲国产精品一区二区久久hs| 精品久久综合1区2区3区激情| 国产A三级久久精品| 久久久久这里只有精品| 97久久精品无码一区二区天美| 亚洲性久久久影院| 国产精品激情综合久久 | 久久精品成人一区二区三区| 久久九九精品99国产精品| 久久久久亚洲av成人网人人软件 | 一本久久a久久精品vr综合| 久久亚洲天堂| 91精品无码久久久久久五月天| 国内精品久久久久影院日本| 久久久久高潮综合影院| 久久亚洲国产成人影院| 亚洲伊人久久成综合人影院| 精品国产热久久久福利| 亚洲AV无码久久精品成人| 日本亚洲色大成网站WWW久久 | 人人狠狠综合久久亚洲| 久久精品国产99久久久香蕉| 久久99精品国产一区二区三区| 精品久久人妻av中文字幕| 国产亚洲精久久久久久无码| 97久久国产亚洲精品超碰热| 久久99精品国产麻豆| 亚洲国产精品一区二区久久| 亚洲一本综合久久|