• <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年5月>
            27282930123
            45678910
            11121314151617
            18192021222324
            25262728293031
            1234567

            E-mail:zbln426@163.com QQ:85132383 長(zhǎng)期尋找對(duì)戰(zhàn)略游戲感興趣的合作伙伴。

            常用鏈接

            留言簿(21)

            隨筆分類

            隨筆檔案

            SDL相關(guān)網(wǎng)站

            我的個(gè)人網(wǎng)頁(yè)

            我的小游戲

            資源下載

            搜索

            •  

            積分與排名

            • 積分 - 494280
            • 排名 - 39

            最新評(píng)論

            閱讀排行榜

            評(píng)論排行榜

            作者:龍飛

                    有了按鈕類,我們制作對(duì)話框就很輕松了。邊寫程序邊說(shuō)明吧。
            bool hand_dialog(const ScreenSurface& screen, const std::string& dialog_text, int size)
            {
                
            const int CENTRE_X = (screen.point()->w) / 2;
                
            const int CENTRE_Y = (screen.point()->h) / 2;
                
            const int HALF_SUB_BUTTON_W = 64 / 2;
            先找出顯示屏的中心點(diǎn),然后是對(duì)話框按鈕寬度的一半。這些是為了在屏幕中心的對(duì)稱位置顯示YES和NO
                PictureSurface quitBG("./images/dialog_bg.png", screen);
                quitBG.blit();
            載入對(duì)話框的背景
                TextSurface quitDlg(dialog_text, screen, 215195122, size);
                
            int quitDlg_x = CENTRE_X - ((quitDlg.point()->w)/2);
                
            int quitDlg_y = CENTRE_Y - 50;
                quitDlg.blit(quitDlg_x, quitDlg_y);
            載入對(duì)話框的提示文字
                const int YES_X = CENTRE_X - 40 - HALF_SUB_BUTTON_W;
                
            const int YES_Y = CENTRE_Y + 30;
                Button yesButtonEffect(
            "./images/h3_yes_off.png""./images/h3_yes_over.png", screen);
                yesButtonEffect.setup(YES_X, YES_Y, 
            5);
                yesButtonEffect.blitOut();
            構(gòu)建YES按鈕
                const int NO_X = CENTRE_X + 40 - HALF_SUB_BUTTON_W;
                
            const int NO_Y = CENTRE_Y + 30;
                Button noButtonEffect(
            "./images/h3_no_off.png""./images/h3_no_over.png", screen);
                noButtonEffect.setup(NO_X, NO_Y, 
            5);
                noButtonEffect.blitOut();
            構(gòu)建NO按鈕
                screen.flip();
            顯示屏幕
                SDL_Event gameEvent;
                
            whiletrue ){
                    
            while ( SDL_PollEvent(&gameEvent) != 0 ){
                        
            if ( gameEvent.type == SDL_KEYDOWN ){
                            
            if ( gameEvent.key.keysym.sym == SDLK_ESCAPE ){
                                
            return false;
                            }
                        }
                        quitBG.blit();
                        quitDlg.blit(quitDlg_x, quitDlg_y);
                        
            if ( yesButtonEffect.effectiveClick(gameEvent) == true )
                            
            return true;
                        
            if ( noButtonEffect.effectiveClick(gameEvent) == true )
                            
            return false;
                        screen.flip();
                    }
                }
            }
            主循環(huán)了。可以通過(guò)按下ESC或者按下NO按鈕取消對(duì)話框,按下YES按鈕則表示做出了選擇。我們使用effectiveClick()方法,一次性的將接收事件,判斷事件,顯示按鈕的不同狀態(tài)集成性的完成了。
            posted on 2008-04-19 12:32 lf426 閱讀(3827) 評(píng)論(2)  編輯 收藏 引用 所屬分類: SDL入門教程

            FeedBack:
            # re: SDL入門教程(十一):3、做一個(gè)對(duì)話框[未登錄] 2009-03-14 18:08 kk
            請(qǐng)問(wèn)用SDL可以實(shí)現(xiàn)如下功能嗎:
            當(dāng)你點(diǎn)擊一個(gè)"按紐"(瀏覽)時(shí),可以打開我的電腦目錄,來(lái)選擇自己想要的文件  回復(fù)  更多評(píng)論
              
            # re: SDL入門教程(十一):3、做一個(gè)對(duì)話框 2014-08-25 10:42 dogking18
            為什么SURFACE 類不寫2個(gè)成員變量,用來(lái)確定位置呢?int x,int y  回復(fù)  更多評(píng)論
              
            久久WWW免费人成—看片| 99久久免费国产精品特黄| 久久久久久久波多野结衣高潮| 性做久久久久久久久浪潮| 91精品免费久久久久久久久| 久久免费美女视频| 99久久香蕉国产线看观香| 国内精品久久久久伊人av| 久久婷婷色综合一区二区| 午夜精品久久久久| 99久久99久久久精品齐齐| 欧美久久亚洲精品| 狠狠色丁香婷婷久久综合不卡| 久久精品国产99国产精品 | 免费精品久久久久久中文字幕| 一级A毛片免费观看久久精品| 国产精品久久影院| 午夜精品久久久久久久| 欧美久久亚洲精品| 内射无码专区久久亚洲| 青青热久久国产久精品| 久久精品?ⅴ无码中文字幕| 精品熟女少妇av免费久久| 亚洲精品无码久久久久去q| 日日狠狠久久偷偷色综合免费| 精品人妻伦九区久久AAA片69| 亚洲人成网站999久久久综合| 青春久久| 亚洲精品蜜桃久久久久久| 亚洲综合久久综合激情久久| 久久96国产精品久久久| 亚洲精品97久久中文字幕无码| 久久国产午夜精品一区二区三区| 国产精品欧美久久久久无广告| 亚洲精品综合久久| 999久久久国产精品| 国产aⅴ激情无码久久| 精品午夜久久福利大片| 综合久久久久久中文字幕亚洲国产国产综合一区首| 久久高清一级毛片| 色偷偷888欧美精品久久久|