• <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++博客 首頁(yè) 新隨筆 聯(lián)系 聚合 管理
              21 Posts :: 3 Stories :: 31 Comments :: 0 Trackbacks
            SDL本身只支持加載BMP文件,如果你想顯示其他類型的圖像文件,就要用到擴(kuò)展類庫(kù),擴(kuò)展類庫(kù)里面還有其他一些組件,你可以在這里下載到 http://www.libsdl.org/projects/SDL_image/
            下載完以后,按照教程一配置,我們就可以顯示一張PNG圖片了。
            以下是具體的代碼,與教程二很相似,如有疑問(wèn)請(qǐng)參考教程二。
            #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擴(kuò)展類庫(kù)加載一個(gè)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) 評(píng)論(4)  編輯 收藏 引用

            Feedback

            # re: SDL游戲編程(3)使用SDL擴(kuò)展類庫(kù)顯示PNG圖片和字體 2007-05-06 21:54 bloodbao
            請(qǐng)問(wèn)在DEV_CPP或CODEBLOCKS下如何編譯SDL_IMAGE,
            有沒(méi)有SDL_IMAGE.A  回復(fù)  更多評(píng)論
              

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

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

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

            到我的CSDN下載
            http://dniit.download.csdn.net  回復(fù)  更多評(píng)論
              


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


            中文国产成人精品久久亚洲精品AⅤ无码精品| 久久精品一区二区三区AV| 一本久久久久久久| 伊人精品久久久久7777| 亚洲精品高清国产一线久久| 久久国产精品-国产精品| 久久笫一福利免费导航 | 老男人久久青草av高清| 99999久久久久久亚洲| 亚洲精品tv久久久久| 久久精品人人槡人妻人人玩AV | 中文字幕一区二区三区久久网站| 精品国产综合区久久久久久| 久久久久99精品成人片试看| 天天影视色香欲综合久久| 久久福利青草精品资源站| 99精品国产99久久久久久97| 国产ww久久久久久久久久| 欧美日韩精品久久免费| 国产叼嘿久久精品久久| 国产成人精品免费久久久久| 免费精品国产日韩热久久| 国产高潮国产高潮久久久91| 国产三级久久久精品麻豆三级| 久久久久久曰本AV免费免费| 久久久艹| 国产精品无码久久久久| 91视频国产91久久久| 久久婷婷五月综合97色| 久久久久久国产a免费观看黄色大片| 精品久久久久久无码人妻热| 久久这里只有精品首页| 精品国产福利久久久| 99久久国产综合精品麻豆| jizzjizz国产精品久久| 久久w5ww成w人免费| 成人国内精品久久久久一区| 久久久亚洲欧洲日产国码二区| 麻豆精品久久久久久久99蜜桃| 色综合久久夜色精品国产| 狠狠色丁香久久婷婷综合_中|