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

            VC++ C++ C# Algorithm

            C++博客 首頁 新隨筆 聯系 聚合 管理
              21 Posts :: 3 Stories :: 31 Comments :: 0 Trackbacks
            SDL本身只支持加載BMP文件,如果你想顯示其他類型的圖像文件,就要用到擴展類庫,擴展類庫里面還有其他一些組件,你可以在這里下載到 http://www.libsdl.org/projects/SDL_image/
            下載完以后,按照教程一配置,我們就可以顯示一張PNG圖片了。
            以下是具體的代碼,與教程二很相似,如有疑問請參考教程二。
            #include?
            " SDL.h "

            #include?
            < SDL_image.h >
            #include?
            < string >
            SDL_Surface?
            * screen;
            SDL_Surface?
            *
            background;
            SDL_Surface?
            * load_image(?std:: string
            ?filename?)?
            {
            ????
            // The?image?that's?loaded

            ????SDL_Surface * ?loadedImage? = ?NULL;

            ????
            // The?optimized?image?that?will?be?used

            ????SDL_Surface * ?optimizedImage? = ?NULL;

            ????
            // Load?the?image?using?SDL_image

            ????loadedImage? = ?IMG_Load(?filename.c_str()?);

            ????
            // If?the?image?loaded

            ???? if (?loadedImage? != ?NULL?)
            ????
            {
            ????????
            // Create?an?optimized?image

            ????????optimizedImage? = ?SDL_DisplayFormat(?loadedImage?);

            ????????
            // Free?the?old?image

            ????????SDL_FreeSurface(?loadedImage?);
            ????}


            ????
            // Return?the?optimized?image
            ???? return ?optimizedImage;
            }

            void ?apply_surface( int ?x, int ?y,SDL_Surface? * source?,SDL_Surface? * destinaion)
            {
            ????SDL_Rect?rect;
            ????rect.x
            =
            x;
            ????rect.y
            =
            y;
            ????SDL_BlitSurface(source,NULL,destinaion,
            &
            rect);

            }

            int ?main(? int ?argc,? char * ?args[]?)
            {
            ????
            // Start?SDL

            ????SDL_Init(?SDL_INIT_EVERYTHING?);

            ????
            // Quit?SDL

            ????screen = SDL_SetVideoMode( 640 , 480 , 32 ,SDL_SWSURFACE);
            ????background
            = load_image( " Dockxrt5.jpg "
            );

            ????apply_surface(
            0 , 0
            ,background,screen);

            ????
            if (SDL_Flip(screen) ==- 1
            )
            ????????
            return ? - 1
            ;
            ????SDL_FreeSurface(background);
            ????SDL_Delay(
            2000
            );
            ????SDL_FreeSurface(background);
            ????SDL_Quit();

            ????
            return ? 0
            ;????
            }

            以下代碼用SDL_TTF擴展類庫加載一個TTF字體文件,并用該字體顯示一段文字。
            ?1 #include? " SDL.h "
            ?2 #include? < SDL_ttf.h >
            ?3 #include? < string >
            ?4 SDL_Surface? * screen;
            ?5 SDL_Surface? *
            background;
            ?6 void ?apply_surface( int ?x, int ?y,SDL_Surface? * source?,SDL_Surface? *
            destinaion)
            ?7
            {
            ?8
            ????SDL_Rect?rect;
            ?9 ????rect.x =
            x;
            10 ????rect.y =
            y;
            11 ????SDL_BlitSurface(source,NULL,destinaion, &
            rect);
            12

            13 }

            14 int ?main(? int ?argc,? char * ?args[]?)
            15
            {
            16 ???? // Start?SDL

            17
            18 ????SDL_Init(?SDL_INIT_EVERYTHING?);
            19 ???? if (TTF_Init() ==- 1
            )
            20 ???????? return ? - 1
            ;
            21 ????TTF_Font? * font =
            NULL;
            22 ????font = TTF_OpenFont( " verdana.ttf " , 14
            );
            23 ???? if (font? ==
            ?NULL)
            24 ???????? return ? - 1
            ;
            25

            26 ???? // Quit?SDL

            27 ????SDL_Color?textColor = { 255 , 255 , 255 } ;
            28 ????SDL_Color?textBgColor = { 0 , 0 , 0 ,}
            ;
            29 ????screen = SDL_SetVideoMode( 640 , 480 , 32
            ,SDL_SWSURFACE);
            30 ????background = TTF_RenderText_Blended(?font,? " why?it?can?not?display?chinese "
            ,?textColor);
            31

            32 ????apply_surface( 0 , 0
            ,background,screen);
            33

            34 ???? if (SDL_Flip(screen) ==- 1
            )
            35 ???????? return ? - 1
            ;
            36

            37 ????SDL_Delay( 100000
            );
            38
            ????SDL_Quit();
            39

            40 ???? return ? 0
            ;????
            41 }

            42
            posted on 2007-03-05 22:30 大熊貓 閱讀(3448) 評論(4)  編輯 收藏 引用

            Feedback

            # re: SDL游戲編程(3)使用SDL擴展類庫顯示PNG圖片和字體 2007-05-06 21:54 bloodbao
            請問在DEV_CPP或CODEBLOCKS下如何編譯SDL_IMAGE,
            有沒有SDL_IMAGE.A  回復  更多評論
              

            # re: SDL游戲編程(3)使用SDL擴展類庫顯示PNG圖片和字體 2007-05-10 21:38 wqm
            SDL_ttf.h在哪里可以找到?  回復  更多評論
              

            # re: SDL游戲編程(3)使用SDL擴展類庫顯示PNG圖片和字體 2007-05-21 11:06 阿丁
            SDL_ttf.h在哪里可以找到?
            能否發一份完整的SDL的包文件給我,
            jacknes111@163.com
            先謝謝哦  回復  更多評論
              

            # re: SDL游戲編程(3)使用SDL擴展類庫顯示PNG圖片和字體 2008-11-18 10:29 dniit
            @阿丁

            到我的CSDN下載
            http://dniit.download.csdn.net  回復  更多評論
              

            亚洲伊人久久精品影院| 91麻豆精品国产91久久久久久| 国产99久久久国产精品小说| 久久婷婷五月综合成人D啪| 久久久久成人精品无码中文字幕 | 亚洲av日韩精品久久久久久a| 久久美女人爽女人爽| 亚洲国产日韩综合久久精品| 久久99精品久久只有精品 | 粉嫩小泬无遮挡久久久久久 | 久久国产欧美日韩精品| 久久婷婷五月综合97色直播| 无码超乳爆乳中文字幕久久 | 久久久久久人妻无码| 无码8090精品久久一区| 办公室久久精品| 国产情侣久久久久aⅴ免费| 精品久久久久成人码免费动漫| 四虎国产永久免费久久| 国产成人久久精品区一区二区| 久久久久精品国产亚洲AV无码| 久久99精品国产麻豆不卡| 国产亚洲欧美精品久久久| 伊人久久大香线蕉亚洲五月天| 一本久久免费视频| 久久久久久国产精品无码下载| 人妻精品久久久久中文字幕一冢本| 久久香综合精品久久伊人| 狠狠色丁香婷婷综合久久来来去| 精品久久久久久亚洲| 久久婷婷五月综合97色| 久久久久亚洲精品无码蜜桃| 中文字幕人妻色偷偷久久| 国产aⅴ激情无码久久| 久久久黄色大片| 亚洲狠狠婷婷综合久久久久| 久久久久久精品免费看SSS| 国产欧美久久久精品影院| 伊人热热久久原色播放www| 中文字幕无码av激情不卡久久| 亚洲午夜无码AV毛片久久|