• <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 大熊貓 閱讀(3447) 評論(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  回復  更多評論
              

            亚洲国产欧洲综合997久久| 亚洲日韩欧美一区久久久久我| 久久综合亚洲色一区二区三区 | 色欲av伊人久久大香线蕉影院| 综合久久国产九一剧情麻豆| 久久久精品2019免费观看| 成人亚洲欧美久久久久| 久久久久久午夜精品| 国内精品久久久久| 狠狠色丁香久久婷婷综合图片| 国产精品久久成人影院| 99久久做夜夜爱天天做精品| 久久香蕉一级毛片| 亚洲va中文字幕无码久久| 久久国产精品免费一区| 国内精品伊人久久久久av一坑| 少妇久久久久久被弄到高潮| 99久久精品毛片免费播放| 久久国产免费直播| 午夜精品久久影院蜜桃| 9999国产精品欧美久久久久久| 无码人妻久久久一区二区三区| 少妇久久久久久被弄到高潮| 色综合久久综精品| 91精品国产综合久久婷婷| 亚洲国产精品18久久久久久| 亚洲国产精品无码久久九九| 国产叼嘿久久精品久久| 九九99精品久久久久久| 久久精品国产亚洲AV无码麻豆| 久久AV无码精品人妻糸列| 一级a性色生活片久久无| 久久亚洲高清综合| 香蕉久久影院| 国内精品久久久久影院老司 | 99久久无码一区人妻| 777米奇久久最新地址| 99久久成人国产精品免费| 国产精品久久一区二区三区| 欧美亚洲色综久久精品国产| 久久精品国产亚洲AV蜜臀色欲|