青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

專職C++

不能停止的腳步

  C++博客 :: 首頁 :: 聯系 :: 聚合  :: 管理
  163 Posts :: 7 Stories :: 135 Comments :: 0 Trackbacks

常用鏈接

留言簿(28)

我參與的團隊

搜索

  •  

最新評論

閱讀排行榜

評論排行榜

#

本文地址:http://m.shnenglu.com/zdhsoft/archive/2014/07/19/207715.html
筆記匯總:http://m.shnenglu.com/zdhsoft/archive/2014/07/15/207659.html
cocos2dx不僅是有框架,還提供了一個編輯器,可以對動畫、UI、骨骼動畫和場景編輯的功能。
使用這些工具,大大縮短了用cocos2dx開發周期。但總的來說,操作并不是很方便,但是有總比沒有強!
下載地址:http://cn.cocos2d-x.org/download/ 現在MAC的版本也出來了。
下圖是界面


然后啟動,新建一個項目


這樣就完成項目的創建。
在編輯之前,需要先給項目提供資源,一種是把資源拖到右邊的資源列表或都在資源列表打開選擇資源對話框。


插入結果
其它資源依此類推。
項目創建會默認創建一個畫布和一個容器panel

在正式編輯UI之前,需要先設置畫面大小,這個跟據你項目的要求設置。

下面在畫面中,填加一個圖片。很不幸,你不能從資源列表直接拖到中間的畫布上只,只能在畫布或對象列表使用右鍵,彈出右鍵菜單,添加圖片對象。


然后,用鼠標選這個對象。在畫面的右邊,會有一個對象的屬性面板。

屬性面版有尺寸和模式、常規、控件布局、特性。大家可以嘗試設置,就知道他的作用了。添加完成后,把具體的圖片資源拖到屬性面版->特性->文件框內,就可以了。

結果

這樣就OK了
在屬性面板有一個Tag屬性和名子屬性要注意一下,我面在加載UI后,可以通過這兩個屬性取得UI中的這個對象。
可能調整渲染層級達到調整顯示次序的效果。
按照上面的步驟,就可以很快的做出UI了。
做完后,就需要導出UI了,cocos2dx是不能直接使用UI工程的,需要使用導出的。


在導出資源這塊,要注意一下,使用大圖,會把用到的資源拼成一個大圖,可以提高效率。使用小圖,則把資源的圖原樣復制過去。這個看你的取舍了。
導出完成后,把導出的目錄復制到cocos2dx工程的Resource這個目錄下面,就可以在項目中使用了。

最后在需要使用這個UI的場景,增加下面代碼

        gui::TouchGroup* ul = gui::TouchGroup::create();
        ul->addWidget(GUIReader::shareReader()->widgetFromJsonFile("NewUi_1/NewUi_1.ExportJson"));
        this->addChild(ul, 2);
如果要訪問這個資源,就可以通過tag來操作。 ul->getWidgetByTag(42)。注意不是ui->getChildByTag(42),這個不會遍歷所有的子節點。 !這樣就完成一個完全的UI操作!
posted @ 2014-07-19 12:28 冬瓜 閱讀(6009) | 評論 (0)編輯 收藏

     摘要: 今年7月以來,終于完全投入到cocos2dx手機項目開發了。真是不容易啊。在這之前,做了很多嘗試cocos的各種版本。cocos2dx 2.2.2,quick cocos2dx 2.2.4,cocos2dx 2.2.5,cocos2dx.3.0,cocos2dx 3.1,最終,決定還是使用2.2.2這個版本,我的大多數例子也是基于這個版本的,其它的或多或少總有些問題。特別是這次cocos2dx 2.2.5發布,問題也比較大,作者有些隨意了。隨機項目中進展,我會把項目遇到的問題,會以筆記的方式列出來,為什么:為我以為再次遇到問題可以快速度解決。  閱讀全文
posted @ 2014-07-15 23:37 冬瓜 閱讀(2569) | 評論 (2)編輯 收藏

cocos2dx有一個編輯器:cocostudio,目前來說,已經是比較好用了,只要加載導出的資源,就可以用上了。省去手動搭建面的麻煩。但是,很多需要事件的地方,操作比較麻煩,所以這里提供一個事件管理器來集中和簡化管理事件。對于C++事件委托方面,我這里使用了是FastDelegate(注:一個牛人寫的)。下面是具體實現的代理,不多。

/*
    UI觸摸事件管理器。
    原有cocos2dx帶的觸摸事件,每次監聽要操作的步驟比較多,為此增加了一個事件管理器,來集中和簡化管理
*/
#ifndef _X_TOUCH_EVENT_MANAGER_H_
#define _X_TOUCH_EVENT_MANAGER_H_
#include <cocos2d.h>
#include <cocos-ext.h>
#include <FastDelegate.h>
#include <xmap.h>
#include <xlog.h>
namespace zdh
{
    USING_NS_CC;
    USING_NS_CC_EXT;
    class XTouchEventManager : public CCObject
    {
    public:
        //綁定的事件定義
        typedef fastdelegate::FastDelegate<void(gui::Widget *, gui::TouchEventType)> TTouchEvent;
    
        typedef int TagID_t;
        //一個Tag的觸模事件結構,包括了四個事件
        struct STagEvent
        {
            TTouchEvent EventBegin;
            TTouchEvent EventMoved;
            TTouchEvent EventEnded;
            TTouchEvent EventCanceled;

            TTouchEvent * getByType(gui::TouchEventType paramType)
            {
                switch (paramType)
                {
                case gui::TOUCH_EVENT_BEGAN:
                    return &EventBegin;
                case gui::TOUCH_EVENT_MOVED:
                    return &EventMoved;
                case gui::TOUCH_EVENT_ENDED:
                    return &EventEnded;
                case gui::TOUCH_EVENT_CANCELED:
                    return &EventCanceled;
                }
                return nullptr;
            }
            //判斷事件是不是都是為空
            bool isAllEmpty() const
            {
                return EventBegin.empty()
                    && EventEnded.empty()
                    && EventMoved.empty()
                    && EventCanceled.empty();
            }
        };
        //Tag事件映射表,可以換用std::map
        typedef XMap<TagID_t, STagEvent> TEventMap;
    public:
        XTouchEventManager()
            :m_UI(nullptr)
        {}

        static XTouchEventManager * create()
        {
            XTouchEventManager * pRet = new XTouchEventManager();
            pRet->autorelease();
            return pRet;
        }
        //property
        void setUI(gui::TouchGroup * paramUI)
        {
            m_UI = paramUI;
        }
        gui::TouchGroup * getUI()
        {
            return m_UI;
        }
        //綁定一個指定Tag和事件類型的事件
        TTouchEvent * Bind(TagID_t paramTagID, gui::TouchEventType paramType)
        {
            if (!(paramType == gui::TOUCH_EVENT_BEGAN
                || paramType == gui::TOUCH_EVENT_CANCELED
                || paramType == gui::TOUCH_EVENT_ENDED
                || paramType == gui::TOUCH_EVENT_MOVED))  return nullptr;

            int iIndex = m_Map.getIndexBykey(paramTagID);
            if (m_Map.isValidIndex(iIndex))
            {
                return m_Map.getValue(iIndex).getByType(paramType);
            }
            else
            {
                gui::Widget * pWidget = GetNodeByTag(paramTagID);
                if (isNULL(pWidget)) return nullptr;
                pWidget->addTouchEventListener(this, gui::SEL_TouchEvent(&XTouchEventManager::OnUITouch));
                return m_Map[paramTagID].getByType(paramType);
            }
        }

        //移除指定Tag和事件類型的偵聽
        void RemoveListen(TagID_t paramTagID, gui::TouchEventType paramType)
        {
            if (!(paramType == gui::TOUCH_EVENT_BEGAN
                || paramType == gui::TOUCH_EVENT_CANCELED
                || paramType == gui::TOUCH_EVENT_ENDED
                || paramType == gui::TOUCH_EVENT_MOVED))  return;
            int iIndex = m_Map.getIndexBykey(paramTagID);
            if (m_Map.isValidIndex(iIndex))
            {
                auto pV = m_Map.getValue(iIndex);
                pV.getByType(paramType)->clear();
                if (pV.isAllEmpty())  //如果這個Tag完全沒有事件偵聽,那么就清除這個Tag的偵聽
                {
                    RemoveListen(paramTagID);
                }
            }
        }
        //移除指定Tag的偵聽
        void RemoveListen(TagID_t paramTagID)
        {
            gui::Widget * pWidget = GetNodeByTag(paramTagID);
            if (isNotNULL(pWidget))
            {
                pWidget->addTouchEventListener(nullptr, nullptr);
            }
            m_Map.RemoveByKey(paramTagID);
        }

    private:
        //當UI被偵聽的事件,被觸發
        void OnUITouch(CCObject* paramSender, gui::TouchEventType paramType)
        {
            gui::Widget * pUIControl = dynamic_cast<gui::Widget *>(paramSender);
            if (isNULL(pUIControl)) return;

            TagID_t tagID = pUIControl->getTag();
            STREAM_INFO << "Sender Tag=" << tagID << ", paramType=" << paramType;

            int iIndex = m_Map.getIndexBykey(tagID);
            if (m_Map.isValidIndex(iIndex))
            {
                auto pV = m_Map.getValue(iIndex);
                auto pEvent = pV.getByType(paramType);
                if (isNotNULL(pEvent) && (!pEvent->empty()))
                {
                    (*pEvent)(pUIControl, paramType); //調用事件
                }
            }
        }
        //取UI中指定Tag的widget對象
        gui::Widget * GetNodeByTag(TagID_t paramTag)
        {
            if (isNULL(m_UI)) return nullptr;
            return m_UI->getWidgetByTag(paramTag);
        }

    private:
        gui::TouchGroup * m_UI;        //用Cocostudio UI編輯器,然后導入生成的UI對象
        TEventMap m_Map;            //事件偵聽映射表
    };
}
#endif

使用例子:在Init函數

m_EventManager = XTouchEventManager::create();  
m_EventManager->retain();  
  
gui::TouchGroup* ul = gui::TouchGroup::create();  
ul->addWidget(GUIReader::shareReader()->widgetFromJsonFile("MainUI_1.ExportJson"));  
this->addChild(ul, 2);  
  
m_EventManager->setUI(m_MainUI);  

最后,事件綁定:

m_EventManager->Bind(ET_BUTTON_EXIT, gui::TOUCH_EVENT_ENDED)->bind(this, &XSceneMain::OnExit);  
m_EventManager->Bind(ET_BUTTON_SAVE, gui::TOUCH_EVENT_ENDED)->bind(this, &XSceneMain::OnSave);  

事件的定義:

void XSceneMain::OnExit(gui::Widget * paramSender, gui::TouchEventType paramType)  
{  
    STREAM_INFO << "OnExit";  
}  
void XSceneMain::OnSave(gui::Widget * paramSender, gui::TouchEventType paramType)  
{  
    STREAM_INFO << "OnSave";  
}  

依賴的代碼參考:我的開發代碼   

posted @ 2014-07-15 15:58 冬瓜 閱讀(2857) | 評論 (0)編輯 收藏

quick-cocos2d-x 的中文站是http://quick.cocoachina.com/?page_id=40,用他們自己的話說:quick-cocos2d-x(后文簡稱 quick)與 cocos2d-x 的關系,用一句話概括:quick 是 cocos2d-x 針對 Lua 的豪華套裝威力加強版。
這里是他的介紹:http://quick.cocoachina.com/?p=1
在我試用2.2.4的時候,2.2.5發布了,目前quick也是非常活躍。
首先、按他們的文章:《設置 quick-cocos2d-x 在 Windows 下的編譯環境》 http://quick.cocoachina.com/?p=253 部署好,寫的很清楚了,照著做就可以了。
其次、就可以創建項目了,我這里是把quick解壓到了G:\cocos2dx\quickx,然在G:\cocos2dx\quickx\bin下面,就可以看到create_project.bat,然后我們在dos命令
提示符下面輸入create_project -p com.my.test 然后它就會在G:\cocos2dx\quickx\bin下面創建一個test目錄(如果只有包名的情況下,它會以最后一個包名做的項目的名稱)
這樣我們就創建了一個項目。
第三、用Vs編譯
vs的工程在G:\cocos2dx\quickx\bin\test\proj.win32下面,打開test.sln就可以了。
然后編譯,就可以顯示,如下圖所示hello world

第四、用player運行
在G:\cocos2dx\quickx\player\win有一個player
它用可以運行你的lua工程,下如圖打開你的工程,



就可以立即看到你的運行結果了。
你可以直接用文本編輯器或其它編輯你的lua文件,保存后,在player按F5就可以立即看到你修改后的運行結果。(不用編譯,就是爽)
posted @ 2014-07-12 14:24 冬瓜 閱讀(2321) | 評論 (1)編輯 收藏

基于cocos2dx 2.2.2版本。這幾天使用了cocostudio實現了,動畫,骨骼動畫,UI編輯,粒子效果,雖然有些不足,但已經算是非常好了。今天嘗試用lua,這個非常簡單,創建的時候,設置語言為lua,那就可以創建lua工程。
在cocos2d-x-2.2.2\tools\project-creator下運行:
python create_project.py -project test_lua -package com.android.zdhsoft -language lua
xcopy ..\..\cocos2dx\platform\android\java\src\* ..\..\projects\test_lua\proj.android\src /E
就可以創建test_lua,就可以順利跑起來。
但是我有些代碼是C++的,想到在lua下用,感覺得用cocos2dx自帶的tolua++,會影響現有的Cocos2dx框架,也可能帶來潛在的風險。(除了,bug,我一般不樂意修改框架的東西)。而且需要手動綁定的也不多。于是找了幾個開源的綁定框架。有luabind,luatinker,ELuna,luabridge,等。luabind需要boost庫,這個太頭痛了,luatinker,eluna在試用過程都有些問題(有一個不支持派生類和模板),雖然這兩個是最簡單的,但是功能也弱了些。最后,用luabridge順利解決,使用起來也非常簡單。
下面是下載地址:https://github.com/vinniefalco/LuaBridge
個版本已經支持lua 5.1.5,不過不支持C++0x11,例子很豐富。這里有很多例子,http://vinniefalco.com/LuaBridge/Manual.html
載后,直接解壓,把LuaBridge.h,RefCountedObject.h,RefCountedPtr.h和detail下的所有頭文件,全部復制到classes目錄,然后在AppDelegate包含luabrigde.h就可以了。
下面是一個用于測試的類
class testA
{
public:
    testA()
    {

    }
    int getValue()
    {
        return 100;
    }
};
下面是綁定代碼
    luabridge::getGlobalNamespace(pEngine->getLuaStack()->getLuaState())
        .beginClass<testA>("testA")
        .addConstructor<void(*) ()>()
        .addFunction("getValue", &testA::getValue)
        .endClass();
然后,就可以在你的lua代碼使用這個類了。
    local testa = testA ()
    cclog("testa=%d", testa:getValue()) 
現在cocos2dx上面,現在出現了兩個重要的lua分支, 一個是quickx,一個cocos-code-ide。quickx提供了一個非常強大的lua框架,讓你寫lua省心省力。而cocos ide則基于eclipse提供了一個x-man的編輯器,支持lua和js調試。這讓C++情何以堪啊!
posted @ 2014-07-09 20:06 冬瓜 閱讀(1897) | 評論 (0)編輯 收藏

cocos2dx框架已經提供了很多場景切換的類,但是一些自定義的場景切換,只有自己實現了。下面是實現的類。這里設計的分辨率是750*500.請根據實際的要求調整。
頭文件
#ifndef _TRANSITION_GAME_H_
#define _TRANSITION_GAME_H_
#include <cocos2d.h>
namespace cocos2d 
{
    class CCTransitionGame : public CCTransitionScene
    {
    public:
        CCTransitionGame();
        virtual ~CCTransitionGame();
        void onEnter();
        static CCTransitionGame * create(float t, CCScene *scene);
    private:
        void LRFinish(void);
        void OnFirstActionFinish(void);
    private:
        int m_FinishCnt;
    };
}
#endif
源文件
#include "TransitionGame.h"
#include "xlog.h"
#include <xstring.h>
namespace cocos2d
{
    using namespace zdh;
    CCTransitionGame * CCTransitionGame::create(float t, CCScene *scene)
    {
        CCTransitionGame * pScene = new CCTransitionGame();
        if (pScene && pScene->initWithDuration(t, scene))
        {
            pScene->autorelease();
            return pScene;
        }
        CC_SAFE_DELETE(pScene);
        return NULL;
    }

    CCTransitionGame::CCTransitionGame()
    {
        m_FinishCnt = 0;
    }

    CCTransitionGame::~CCTransitionGame()
    {
    }

    void CCTransitionGame::onEnter()
    {
        CCTransitionScene::onEnter();
        CCSize visibleSize = CCDirector::sharedDirector()->getVisibleSize();


        CCPoint stLeftBegin, stLeftEnd, stRightBegin, stRightEnd;
        //設置左邊的起點和終點
        stLeftBegin.setPoint(-436.0f, -60);
        stLeftEnd.setPoint(visibleSize.width / 2.0f + stLeftBegin.x, -60.0f);
        //設置右邊的起點和終點
        stRightBegin.setPoint(visibleSize.width, -60.0f);
        stRightEnd.setPoint(visibleSize.width / 2.0f, -60.0f);
        //加載動畫序列
        CCSpriteFrameCache* pCache = CCSpriteFrameCache::sharedSpriteFrameCache();
        pCache->addSpriteFramesWithFile("middle_ani_1.plist");
        pCache->addSpriteFramesWithFile("middle_ani_2.plist");
        //生成畫動圖片列表和動畫對象
        CCArray* pAnimFrames = CCArray::createWithCapacity(69);
        XAnsiString strAniName;
        for (int i = 1; i < 70; i++)
        {
            strAniName.printf("light%04d.png", i);
            pAnimFrames->addObject(pCache->spriteFrameByName(strAniName.c_str()));
        }
        CCAnimation* animation = CCAnimation::createWithSpriteFrames(pAnimFrames, this->m_fDuration * 2.0f/3.0f/69.0f );
        

        CCNode * pNode = CCNode::create(); //這個有兩個子節點,一個是左邊交換圖片,一個是中間的動畫,用于一起做移動的Action
        CCSprite* pLeft = CCSprite::createWithSpriteFrameName("swap_left.png");
        pLeft->setAnchorPoint(CCPointZero);
        pNode->addChild(pLeft);

        CCSprite * pMiddle = CCSprite::create();  //顯示動畫
        pMiddle->setAnchorPoint(CCPointZero);
        pMiddle->setPosition(ccp(436.0f - 69.0f, 250.0f + 60.0f - 72.0f));
        pMiddle->runAction(CCAnimate::create(animation));
        pNode->addChild(pMiddle);

        pNode->setAnchorPoint(ccp(0,0));
        pNode->setPosition(stLeftBegin);
        this->addChild(pNode,1);

        //右邊的交換圖片
        CCSprite* pRight = CCSprite::createWithSpriteFrameName("swap_right.png");
        pRight->setPosition(stRightBegin);
        pRight->setAnchorPoint(CCPointZero);
        this->addChild(pRight, 0);

        //定義動作
        
//左邊的向右移動活動
        CCMoveTo* pActionLeft = CCMoveTo::create(m_fDuration / 3, stLeftEnd);
        //右邊的向左移動活動
        CCMoveTo * pActionRight = CCMoveTo::create(m_fDuration / 3, stRightEnd);
        //原地不動
        CCMoveTo* pActionLeft1 = CCMoveTo::create(m_fDuration / 3, stLeftEnd);
        CCMoveTo * pActionRight1 = CCMoveTo::create(m_fDuration / 3, stRightEnd);
        
        CCMoveTo* pActionLeft2 = CCMoveTo::create(m_fDuration / 3, stLeftBegin);
        CCMoveTo * pActionRight2 = CCMoveTo::create(m_fDuration / 3, stRightBegin);

        m_FinishCnt = 0;
        pNode->runAction(CCSequence::create(pActionLeft, CCCallFunc::create(this, callfunc_selector(CCTransitionGame::OnFirstActionFinish)), pActionLeft1, pActionLeft2, CCCallFunc::create(this, callfunc_selector(CCTransitionGame::LRFinish)), NULL));
        pRight->runAction(CCSequence::create(pActionRight, pActionRight1,pActionRight2, CCCallFunc::create(this, callfunc_selector(CCTransitionGame::LRFinish)), NULL));
    }

    void CCTransitionGame::LRFinish(void)
    {
        //所以的活動完成后,要執行場行的Finish
        m_FinishCnt++;
        if (m_FinishCnt >= 2)
        {
            CCTransitionScene::finish();
        }
    }

    void CCTransitionGame::OnFirstActionFinish(void)
    {
        //打開門之前,關閉顯示第一個場景,顯示第二個場景
        m_pInScene->setVisible(true);
        m_pOutScene->setVisible(false);
    }

}
用到的資源
/Files/zdhsoft/plist.zip 效果圖:
posted @ 2014-07-01 20:12 冬瓜 閱讀(2158) | 評論 (0)編輯 收藏

     摘要: 在cocos2dx 2.2.2版本中,cocos使用的是CLOG寫入日期,其格式是C的Printf方式生成日志。現在也有很多C++流式日志,類似于cout這樣的操作。我看了也有很多,log4cxx,等。但是個人移動有些大。我就在我原來的日志中增加了對流式的支持。并順利移植到cocos2dx環境中使用  閱讀全文
posted @ 2014-06-30 15:16 冬瓜 閱讀(1219) | 評論 (0)編輯 收藏

     摘要: 在用vs開發cocos2dx過程中,要顯示的中文,要求是UTF-8格式的才能正常顯示出來,但VS一般是ANSI格式保存,這樣,在代碼中寫入的中文字符串,運行后,顯示的就是亂碼。
為了正確顯示中文,或支持多語言,我這里定義一個簡單的字符串管理類,來滿足上述要求。  閱讀全文
posted @ 2014-06-30 14:59 冬瓜 閱讀(1281) | 評論 (0)編輯 收藏

之前我的代碼是放到code.google.com上面的,但是最近老有些問題,前些天又發現發現csdn搞了一個git服務器,于是就把代碼遷移到這上面來了。地址如下,有喜歡的朋友,可以看看,這些代碼,已經在我的很多項目中使用了,當然,還會有不少問題。
下載地址是:https://code.csdn.net/zdhsoft/commonlib/tree/master,git地址是:git@code.csdn.net:zdhsoft/commonlib.git
對于windows的客戶端,薦舉使用TortoiseGit,為什么用它,因為我之前用的是TortoiseSVN,習慣了。
附:
Git下載地址:https://github.com/msysgit/msysgit/releases/download/Git-1.9.4-preview20140611/Git-1.9.4-preview20140611.exe
TortoiseGit下載地址:http://wzgj.newhua.com/down/TortoiseGit-1.8.9.0-32bit.zip
安裝配置過程,大家都知道,我就不說了,很簡單。
posted @ 2014-06-27 11:26 冬瓜 閱讀(1618) | 評論 (1)編輯 收藏

下面代碼是我常用VA的Snippet的片斷,做記錄,防止丟失
命令函數通用代碼
Title:Command Common! 
Shortcut:dwr
    TAnswer & stAns = getAnswer();  
    TRequest & stReq = getRequest();
    error_code_t iRet = ERR_OK;
    CPlayer * pPlayer = gPlayerMaster->getPlayer(getUID());
    do
    {
          if (isNULL(pPlayer))                
           {                                   
               iRet = ERR_LOGIC_PLAYER_IS_NULL;
               break;                          
           }     
           pPlayer->PropertyBeginChange();
        $end$

    }while(false);
    stAns.Result = iRet;          
    gCtrl.AnswerClientCmd(this);  
    if (isNotNULL(pPlayer))               
    {                             
        pPlayer->PropertyEndChange();
    }                             
    return ERR_OK;
通用bool屬性代碼
Title:is Boolean Property
Shortcut:isb
//-------------------------------------------------------------------------
//property $PropertyName$
bool is$PropertyName$() const
{
    return this->m_$PropertyName$;
}
//--------
void set$PropertyName$(bool param$PropertyName$)
{
    this->m_$PropertyName$ = param$PropertyName$;
}
通用基本數據屬性代碼
Title:base data property
Shortcut:bp
//-------------------------------------------------------------------------
//property $PropertyName$
$PropertyType$ get$PropertyName$() const
{
    return this->m_$PropertyName$;
}
//--------
void set$PropertyName$($PropertyType$ param$PropertyName$)
{
    this->m_$PropertyName$ = param$PropertyName$;
}
通用對象屬性代碼
Title:object data property
Shortcut:op
//-------------------------------------------------------------------------
//property $PropertyName$
const $PropertyType$ & get$PropertyName$() const
{
    return this->m_$PropertyName$;
}
//--------
void set$PropertyName$(const $PropertyType$ & param$PropertyName$)
{
    this->m_$PropertyName$ = param$PropertyName$;
}
posted @ 2014-06-27 10:09 冬瓜 閱讀(1680) | 評論 (0)編輯 收藏

僅列出標題
共17頁: First 4 5 6 7 8 9 10 11 12 Last 
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            麻豆视频一区二区| 欧美成人一区二区在线| 国产一区二区三区网站| 国产精品美女在线| 国产午夜亚洲精品不卡| 国产一区美女| 亚洲高清色综合| 日韩视频免费看| 亚洲一区黄色| 一区二区三区欧美| 亚洲精品国产精品久久清纯直播 | 欲香欲色天天天综合和网| 国内精品久久久久久久97牛牛| 狠狠色丁香久久婷婷综合_中| 亚洲福利视频一区| 亚洲小说欧美另类婷婷| 久久精品视频在线看| 欧美国产另类| 夜夜嗨av色一区二区不卡| 午夜精品久久久久久久99水蜜桃| 欧美中文字幕在线视频| 欧美精品一区二区在线观看| 国产婷婷精品| 中文一区在线| 免播放器亚洲一区| 亚洲视频大全| 欧美大片网址| 韩国精品在线观看| 亚洲一区二区三区在线视频| 美日韩免费视频| 亚洲一区二区三区四区视频| 久热精品视频在线| 国产午夜亚洲精品理论片色戒 | 午夜久久黄色| 欧美高清视频| 欧美一区综合| 国产精品亚洲综合| 在线亚洲精品| 亚洲国产欧美一区| 久久国产精品99精品国产| 欧美日韩国产小视频| 亚洲第一主播视频| 久久精品国产99精品国产亚洲性色| 亚洲二区在线观看| 噜噜噜久久亚洲精品国产品小说| 国产日韩欧美a| 亚洲欧美视频在线观看| 欧美mv日韩mv国产网站app| 亚洲欧美大片| 国产精品草莓在线免费观看| 日韩视频一区二区三区| 欧美成人免费全部| 久久精品夜色噜噜亚洲aⅴ| 国产精品久久九九| 亚洲视频在线一区| 亚洲人在线视频| 欧美大胆成人| 91久久黄色| 欧美韩日高清| 巨乳诱惑日韩免费av| 一区二区在线观看视频| 久热国产精品视频| 麻豆精品视频在线观看视频| 欧美主播一区二区三区| 欧美一区二区三区在| 国产精品入口日韩视频大尺度| 亚洲午夜在线观看| 亚洲午夜在线视频| 国产精品剧情在线亚洲| 欧美一区二区三区免费视频| 亚洲一区欧美二区| 国产视频一区三区| 老**午夜毛片一区二区三区| 久久琪琪电影院| 亚洲精品少妇30p| 亚洲毛片在线观看.| 国产精品狼人久久影院观看方式| 欧美亚洲专区| 免播放器亚洲| 亚洲天堂黄色| 久久成人免费电影| 亚洲另类黄色| 一区二区激情视频| 国产色综合网| 亚洲高清中文字幕| 国产精品hd| 久久青青草原一区二区| 久久野战av| 亚洲视频大全| 久久精品日韩一区二区三区| 最新国产の精品合集bt伙计| 国产精品99久久久久久白浆小说 | 久久久久88色偷偷免费| 亚洲精品中文字幕在线观看| 亚洲一区二区三区影院| …久久精品99久久香蕉国产| 亚洲日本欧美| 国产亚洲一本大道中文在线| 亚洲福利免费| 国产在线精品一区二区中文| 亚洲美女黄网| 亚洲国产第一| 亚洲免费在线电影| 亚洲精品一区二区三区av| 亚洲欧美日韩专区| 亚洲精品免费电影| 欧美有码在线观看视频| 一本大道av伊人久久综合| 欧美在线日韩在线| 一区二区三区视频观看| 久久婷婷成人综合色| 欧美一级午夜免费电影| 欧美日韩一区三区| 亚洲国产日本| 影音先锋久久久| 午夜视频在线观看一区二区| av成人黄色| 欧美77777| 欧美成人在线免费观看| 韩国三级电影久久久久久| 夜夜嗨网站十八久久| 亚洲精品一区二区在线| 久久久噜噜噜久噜久久| 欧美一区二区三区视频在线| 欧美日韩无遮挡| 午夜精品久久久久久久久久久久久| 日韩一区二区精品在线观看| 久久成人亚洲| 久久亚洲影院| 黄色国产精品一区二区三区| 亚洲专区一二三| 亚洲自拍电影| 欧美天堂亚洲电影院在线播放| 亚洲精品久久久久久久久久久久 | 久久久久久久久久久成人| 欧美亚洲免费电影| 国产精品视频一二三| 亚洲图片在线| 欧美亚洲一区三区| 国产日韩欧美精品一区| 香蕉成人伊视频在线观看| 久久精品国产亚洲精品| 国内精品久久久久影院色| 久久蜜臀精品av| 欧美激情乱人伦| 亚洲人成精品久久久久| 欧美国产成人精品| 亚洲美女黄色片| 欧美一级网站| 一区二区亚洲精品| 欧美激情一区| 亚洲特级片在线| 久久久欧美精品| 亚洲国产精品传媒在线观看 | 亚洲精品一区二区三区樱花| 亚洲视频第一页| 国产伦精品一区二区三区在线观看| 亚洲一区二区免费看| 久久精品国产欧美亚洲人人爽| 黑人一区二区| 欧美极品在线播放| 亚洲天堂成人在线观看| 久久久久久9999| 亚洲精品美女91| 国产精品亚洲综合一区在线观看| 久久精品日韩一区二区三区| 最新日韩在线| 欧美在线综合| 亚洲免费av网站| 国产伦精品一区二区三区在线观看 | 亚洲高清色综合| 国产精品视频不卡| 你懂的国产精品| 亚洲一线二线三线久久久| 欧美成人亚洲成人日韩成人| 亚洲男人av电影| 91久久精品国产91性色tv| 国产精品久久国产三级国电话系列 | 中文日韩欧美| 影音先锋欧美精品| 国产精品激情av在线播放| 99在线精品视频| 欧美一级免费视频| 亚洲激情在线观看| 国产精品欧美激情| 欧美成人一二三| 欧美亚洲专区| 日韩写真在线| 欧美成人一二三| 欧美自拍偷拍午夜视频| 亚洲免费激情| 亚洲第一在线综合网站| 国产精品专区一| 欧美日韩高清免费| 久色婷婷小香蕉久久| 欧美一区二区精品在线| 制服丝袜亚洲播放| 亚洲精品一区二区三区蜜桃久| 久热精品在线视频| 久久精品九九|