• <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>
            Cpper
            C/C++高級(jí)工程師 Android高級(jí)軟件工程師 IT集成工程師 音頻工程師 熟悉c,c++,java,c#,py,js,asp等多種語(yǔ)言 程序猿
            主要解決了很多故障,增加了一點(diǎn)功能
            API上參考了Qt
            1. 支持png格式
            2. 支持控件序列化,反序列化
            3. 支持換膚
            4. 代碼整潔,風(fēng)格良好
            5. 提供StackLayout,BoxLayout,GridLayout,FlowLayout
            6. 提供CheckBox,Panel,StaticText,ImageBox,ProgressBar,TableWidget,Slider,EditFiled,Combox等常用控件

            截圖如下:


            例子1

            #include <BGE/All>

            using namespace bge;

            class Dispatcher : public SlotHolder
            {
            public:
                Dispatcher(ImageBox
            * image,Button* button)
                {
                    image_ 
            = image;
                    button_ 
            = button;
                    count_ 
            = 1;
                }

                
            void click()
                {
                    std::
            string file = ":box/side";
                    file 
            += toString(count_);
                    file 
            += ".png";
                    image_
            ->setImage(file);
                    count_ 
            ++;
                    
            if(count_ == 7)
                        count_ 
            = 1;
                }
            private:
                ImageBox
            * image_;
                Button
            * button_;
                
            int count_;
            };

            int main(int argc,char* argv[])
            {
                FileSystem::instance().initial(argv[
            0]);
                FileSystem::instance().setResourcePackage(
            "data.zip");
                WindowManager::instance().initialize(
            ":accid.ttf",false);

                Device
            * device = Device::create();
                device
            ->initial();
                device
            ->createWindow(640,480,String("BGE Window"));

                Panel
            * panel = new Panel();
                panel
            ->setPosition(Vector2f(20,20));
                panel
            ->setSize(Vector2f(128,128+24));

                ImageBox
            * image = new ImageBox();
                image
            ->setImage(":box/side6.png");
                image
            ->setPosition(Vector2f(0,0));
                image
            ->setSize(Vector2f(128,128));

                Button
            * button = new Button();
                button
            ->loadAppearance(":buttonskin1.xml");
                button
            ->setSize(Vector2f(128,24));
                button
            ->setText(L"Click");

                Dispatcher dispacher(image,button);
                button
            ->clicked.connect(&dispacher,&Dispatcher::click);

                BoxLayout
            * layout = new BoxLayout();
                layout
            ->setSpacing(.0f);
                panel
            ->setLayout(layout);
                layout
            ->setJustification(Orientation_vertical);
                layout
            ->addWindow(image);
                layout
            ->addWindow(button);

                panel
            ->adjust();

                WindowManager::instance().addWindow(panel);

                
            while(device->isRunning())
                {
                    device
            ->preRender();

                    WindowManager::instance().update();

                    device
            ->swapBuffers();
                    device
            ->pollEvents();
                }

                WindowManager::instance().terminate();
                device
            ->closeWindow();
                device
            ->terminate();
                device
            ->deleteLater();
                
            return 0;
            }
            例子2
            #include <BGE/All>

            using namespace bge;

            class Dispatcher : public SlotHolder
            {
            public:
                Dispatcher(StackLayout
            * layout,Button* button)
                {
                    layout_ 
            = layout;
                    button_ 
            = button;
                    count_ 
            = 0;
                }

                
            void click()
                {
                    layout_
            ->setCurrentIndex(count_);
                    count_ 
            ++;
                    
            if(count_ > 5)
                        count_ 
            = 0;
                }
            private:
                StackLayout
            * layout_;
                Button
            * button_;
                
            int count_;
            };

            int main(int argc,char* argv[])
            {
                FileSystem::instance().initial(argv[
            0]);
                FileSystem::instance().setResourcePackage(
            "data.zip");
                WindowManager::instance().initialize(
            ":accid.ttf",false);

                Device
            * device = Device::create();
                device
            ->initial();
                device
            ->createWindow(640,480,String("BGE Window"));

                Panel
            * panel = new Panel();
                panel
            ->setPosition(Vector2f(20,20));
                panel
            ->setSize(Vector2f(128,128+24));

                Panel
            * stackPanel = new Panel();
                stackPanel
            ->setSize(Vector2f(128,128));

                StackLayout
            * stackLayout = new StackLayout();
                stackPanel
            ->setLayout(stackLayout);
                stackLayout
            ->setSpacing(.0f);
                
            for(int i=1;i<7;i++)
                {
                    ImageBox
            * image = new ImageBox();
                    std::
            string file = ":box/side";
                    file 
            += toString(i);
                    file 
            += ".png";
                    image
            ->setImage(file);
                    image
            ->setPosition(Vector2f(0,0));
                    image
            ->setSize(Vector2f(128,128));
                    stackLayout
            ->insertWindow(i,image);
                }

                Button
            * button = new Button();
                button
            ->loadAppearance(":buttonskin1.xml");
                button
            ->setSize(Vector2f(128,24));
                button
            ->setText(L"Click");

                Dispatcher dispacher(stackLayout,button);
                button
            ->clicked.connect(&dispacher,&Dispatcher::click);

                BoxLayout
            * layout = new BoxLayout();
                layout
            ->setSpacing(.0f);
                panel
            ->setLayout(layout);
                layout
            ->setJustification(Orientation_vertical);
                layout
            ->addWindow(stackPanel);
                layout
            ->addWindow(button);

                panel
            ->adjust();

                WindowManager::instance().addWindow(panel);

                
            while(device->isRunning())
                {
                    device
            ->preRender();

                    WindowManager::instance().update();

                    device
            ->swapBuffers();
                    device
            ->pollEvents();
                }

                WindowManager::instance().terminate();
                device
            ->closeWindow();
                device
            ->terminate();
                device
            ->deleteLater();
                
            return 0;
            }
            這2個(gè)顯示效果完全一樣
            歡迎下載







            在這里下載:
            http://download.csdn.net/detail/ccsdu2004/9464121

            代碼有點(diǎn)大 這里放不下

            posted on 2016-03-17 11:13 ccsdu2009 閱讀(1769) 評(píng)論(1)  編輯 收藏 引用 所屬分類: Game引擎編程基礎(chǔ)
            Comments
            • # re: BGE GUI升級(jí)
              zhouxiang
              Posted @ 2016-04-14 10:36
              小弟也準(zhǔn)備開發(fā)gui庫(kù),可以苦于沒(méi)有例子,希望給封源碼學(xué)習(xí)學(xué)習(xí)。

              better@geekzhou.uu.me  回復(fù)  更多評(píng)論   
             
            四虎影视久久久免费| 久久精品国产亚洲av麻豆图片| 婷婷国产天堂久久综合五月| 亚洲狠狠婷婷综合久久蜜芽| 国产福利电影一区二区三区久久久久成人精品综合 | 久久国产精品一国产精品金尊| 久久se精品一区精品二区国产| 99久久国产热无码精品免费 | 很黄很污的网站久久mimi色| 久久激情亚洲精品无码?V| AV无码久久久久不卡网站下载 | 亚洲精品tv久久久久久久久| 99久久国产综合精品五月天喷水 | 久久久久久无码国产精品中文字幕 | 国产高潮国产高潮久久久| 久久AⅤ人妻少妇嫩草影院| 婷婷伊人久久大香线蕉AV| 伊人久久免费视频| 久久久久久国产精品无码超碰| 久久精品亚洲欧美日韩久久| 99久久精品国产高清一区二区| 久久久久久夜精品精品免费啦| 久久久无码精品午夜| 久久精品免费大片国产大片| 99精品国产在热久久无毒不卡| 囯产精品久久久久久久久蜜桃 | 久久久久无码专区亚洲av| 久久综合综合久久狠狠狠97色88| 久久久久一区二区三区| 五月丁香综合激情六月久久 | 久久av无码专区亚洲av桃花岛| 欧美日韩精品久久久久| 精品久久久久久国产免费了| 欧美一区二区精品久久| 久久国产精品久久| 精品久久久无码中文字幕| AV无码久久久久不卡蜜桃| 97久久香蕉国产线看观看| 久久综合九色综合网站| 91久久九九无码成人网站| 久久久中文字幕|