• <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>
            posts - 28,  comments - 15,  trackbacks - 0

            對上次的代碼做了一些修改今天傳上來,代碼中肯定有很多問題需要高人指點一二
            1.可以運用00P和GP方法對代碼進行壓縮
            2.對內存的利用更合理,更節省開銷
            .................
            如果誰有時間修改,麻煩修改后回復,多謝

            截圖:




            #pragma once
            #include 
            "exampleapplication.h"
            #include 
            <stdlib.h>

            class ParticleSysListener : public ExampleFrameListener
            {
            public:
                ParticleSysListener(RenderWindow
            * win,Camera* cam,AnimationState* anistate,AnimationState* anistate1,
                    AnimationState
            * bbsp_anistate,AnimationState* stateTrail,SceneNode* pNode,SceneNode* Node_chain) : ExampleFrameListener(win,cam)
                
            {

                    mAnimationSate
            =anistate;
                    mAnimationSate1
            =anistate1;
                    mNode
            =pNode;
                    bbsp_anistate1
            =bbsp_anistate;
                    mstatetrial
            =stateTrail;
                    node_chain 
            = Node_chain;
                }

            protected:
                
            bool frameStarted(const FrameEvent& evt)
                
            {
                    
            if (trFlag==0)
                    
            {
                        mNode
            ->translate(Vector3(-3,-1.5,-3));
                    }

                    
            else 
                    
            {
                        
            if(trFlag==3)
                        
            {
                            mNode
            ->translate(Vector3(0,0,0));
                        }


                        
            if (trFlag==6)
                        
            {
                            mNode
            ->translate(Vector3(3,1.5,3));
                        }


                    }

                    
            //mNode->yaw(Radian(evt.timeSinceLastFrame*0.1));
                    mAnimationSate->addTime(evt.timeSinceLastFrame);
                    mAnimationSate1
            ->addTime(evt.timeSinceLastFrame*0.3);
                    trFlag
            ++;
                    
            if (trFlag==8)
                    
            {
                        trFlag
            =0;
                    }


                    bbsp_anistate1
            ->addTime(evt.timeSinceLastFrame);
                    mstatetrial
            ->addTime(evt.timeSinceLastFrame);

                    node_chain
            ->roll(Radian(evt.timeSinceLastFrame*100));
                    
            return ExampleFrameListener::frameStarted(evt);
                }

            private:
                AnimationState
            * mAnimationSate;
                AnimationState
            * mAnimationSate1;
                
            //static SceneNode* mNode;
                SceneNode* mNode;
                
            static UINT trFlag;
                AnimationState
            * bbsp_anistate1;
                AnimationState
            * mstatetrial;
                SceneNode
            * node_chain;
            }
            ;
            //SceneNode* ParticleSysListener::mNode=NULL;
            UINT ParticleSysListener::trFlag=FALSE;


            class ParticleSysApplication : public ExampleApplication
            {
            public:
                ParticleSysApplication()
                
            {
                    mHeadAnimation
            =NULL;
                    
            //mHeadAnimation1=NULL;
                    stateTrail=NULL;
                }

                
            ~ParticleSysApplication()
                
            {
                    
            //如果指針是new得到的,則一定要delete [] p;
                }

            protected:
                
            void createScene(void)
                
            {
                    mRootSceneNode 
            = mSceneMgr->getRootSceneNode();

                    mHeadNode 
            = mRootSceneNode->createChildSceneNode("RobotHeadNode");

                    mRollHeadNode 
            = mRootSceneNode->createChildSceneNode("RollParentNode");

                    mRollLeftNode 
            = mRollHeadNode->createChildSceneNode("RollLeftNode");

                    mRollRightNode 
            = mRollHeadNode->createChildSceneNode("RollRightNode");


                    mSceneMgr
            ->setAmbientLight(ColourValue(0.2,0.2,0.2,1.0));//僅影響環境的亮度

                    
            //機器人以及綁定在機器人上的燈光
                        
            //實體
                    Entity* ent=mSceneMgr->createEntity("Rotbot","robot.mesh");
                    
            //Entity* ent= static_cast<Entity*> (mSceneMgr->createMovableObject("Robot","Entity"));//這種定義方式無效
                    ent->setMaterialName("Examples/Robot");//是否添加材質不影響效果,因為robot.skeleton
                    
            //mRollHeadNode->setDirection(0,0,1);
                    mHeadNode->setOrientation(0.86,0,-0.5,0); //Q = (c,s XA,s YA,s ZA)。其中s = sin(θ/2),c = cos(θ/2)。
                    
            //mRollHeadNode->setScale(0.5,0.5,0.5);
                    mHeadNode->setPosition(0,-50,0);
                    mHeadNode
            ->attachObject(ent);

                    
            /*
                        //燈光,為什么聚光燈失效
                    Light* lent=mSceneMgr->createLight("ent_light");
                    lent->setType(Light::LT_SPOTLIGHT);
                    lent->setPosition(0,100,0);
                    lent->setDirection(0,-1,0);
                    lent->setDiffuseColour(0.0,1.0,0.0);
                    lent->setSpotlightRange(Radian(Degree(10.0)),Radian(Degree(30.0)),2.0);
                    mHeadNode->attachObject(lent);
                    
            */



                    
            //整體的燈燈光
                    Light* l=mSceneMgr->createLight("SpotLight");
                    l
            ->setType(Light::LT_DIRECTIONAL);  //方向性光源,setPosition無效
                    Vector3 dir(-1,-1,0);
                    dir.normalise();
            //當Vector表示向量時一定要注意記得歸一化
                    l->setDirection(Vector3(-1,-1,0));   //參數是向量,不是點坐標,所以(0,0,0)無效
                    l->setDiffuseColour(0.4,0.4,0.8);
                    
                    
            //骨骼動畫
                    
            //mHeadAnimation=mSceneMgr->createAnimation();
                    Animation::setDefaultInterpolationMode(Animation::IM_SPLINE);//幀間樣條插值,腳步移動平緩
                    mHeadAnistate=ent->getAnimationState("Walk");
                    mHeadAnistate1
            =ent->getAnimationState("Shoot");
                    mHeadAnistate
            ->setEnabled(TRUE);
                    mHeadAnistate1
            ->setEnabled(TRUE);

                    
            //粒子系統

                    
            //Green steam on Robot'head
                    ParticleSystem* PsRobotHead=mSceneMgr->createParticleSystem("Nimbus","Examples/GreenyNimbus");
                    
            //mHeadNode->createChildSceneNode()->attachObject(RobotHead);
                    mHeadNode->createChildSceneNode(Vector3(0,40,0))->attachObject(PsRobotHead);

                    
            //手動創建地面
                    Plane p;
                    p.normal
            =Vector3::UNIT_Y;
                    p.d
            =50;
                    
            //MovablePlane p(Vector3(0,1,0),Vector3(0,0,0));
                    MeshManager::getSingleton().createPlane(
                        
            "FloorPlane", ResourceGroupManager::DEFAULT_RESOURCE_GROUP_NAME, 
                        p, 
            2000002000002020true15050, Vector3::UNIT_X);
                    Entity
            * ent1=mSceneMgr->createEntity("floor","FloorPlane");
                    ent1
            ->setMaterialName("Examples/RustySteel");
                    
            //mRollHeadNode->
                    mRollHeadNode->attachObject(ent1);
                    
            //天空
                    mSceneMgr->setSkyDome(true"Examples/SpaceSkyPlane"58);
                    
                    
            //公告板 星星
                    BillboardSet* bbs0=mSceneMgr->createBillboardSet("star",1);//Billboard的位置由SceneNode決定
                    bbs0->setMaterialName("Examples/praticlesys_bbs0");
                    Billboard
            * bb0=bbs0->createBillboard(Vector3(-80,200,-1800));
                    
            //bb0=bbs0->createBillboard(Vector3(0,200,-1800));
                    SceneNode* bbs0Node=mSceneMgr->getRootSceneNode()->createChildSceneNode("bbs0Node");
                    bbs0Node
            ->attachObject(bbs0);

                    
            //公告板 精靈
                    BillboardSet* bbs1=mSceneMgr->createBillboardSet("sprite",3);
                    bbs1
            ->setMaterialName("Examples/FlarePointSprite");

                    Billboard
            * bb_sp_00=bbs1->createBillboard(0,0,0,ColourValue(1.0,0.0,0.0,1.0));
                    Billboard
            * bb_sp_01=bbs1->createBillboard(-20,0,0,ColourValue(0.0,1.0,0.0,1.0));
                    Billboard
            * bb_sp_02=bbs1->createBillboard(-40,0,0,ColourValue(0.0,1.0,0.0,1.0));

                    
            //bb_sp_00->setColour()
                    bb_sp_00->setDimensions(30.0,30.0);
                    bb_sp_01
            ->setDimensions(20.0,20.0);
                    bb_sp_02
            ->setDimensions(10.0,10.0);


                    
            //每個精靈上都綁定一個Light
                    Light* lsp[3];

                    lsp[
            0]=mSceneMgr->createLight("lsp_0");
                    lsp[
            1]=mSceneMgr->createLight("lsp_1");
                    lsp[
            2]=mSceneMgr->createLight("lsp_2");

                    lsp[
            0]->setType(Light::LT_POINT);
                    lsp[
            1]->setType(Light::LT_POINT);
                    lsp[
            2]->setType(Light::LT_POINT);

                    
            //光照的影響與材質的反光系數有關
                    lsp[0]->setSpecularColour(ColourValue(0.0,1.0,0.0));
                    lsp[
            0]->setDiffuseColour(ColourValue(0.0,1.0,0.0));
                    lsp[
            1]->setSpecularColour(ColourValue(0.0,1.0,0.0));
                    lsp[
            1]->setDiffuseColour(ColourValue(0.0,1.0,0.0));
                    lsp[
            2]->setSpecularColour(ColourValue(0.0,1.0,0.0));
                    lsp[
            2]->setDiffuseColour(ColourValue(0.0,1.0,0.0));

                    lsp[
            0]->setPosition(Vector3(0,0,0));
                    lsp[
            1]->setPosition(Vector3(-80,0,0));
                    lsp[
            2]->setPosition(Vector3(-160,0,0));


                    SceneNode
            * bbs_sp_node=mSceneMgr->getRootSceneNode()->createChildSceneNode();

                    bbs_sp_node
            ->attachObject(bbs1);
                    bbs_sp_node
            ->attachObject(lsp[0]);
                    bbs_sp_node
            ->attachObject(lsp[1]);
                    bbs_sp_node
            ->attachObject(lsp[2]);
                

                    
            /*
                    //公告板集合 巴格達星星群
                    bbs0=mSceneMgr->createBillboardSet("bagedastar",1);//Billboard的位置由SceneNode決定
                    bbs0->setMaterialName("Examples/praticlesys_bageda");
                    Billboard* bb_bageda_01=bbs0->createBillboard(Vector3(0,600,-100));
                    //bb0=bbs0->createBillboard(Vector3(0,200,-1800));
                    //SceneNode* bbs0Node=mSceneMgr->getRootSceneNode()->createChildSceneNode("bbs0Node");
                    bbs0Node->attachObject(bbs0);
                    
            */


                    
            //關于精靈的節點動畫
                    Animation* ami_bbsp=mSceneMgr->createAnimation("anibbsp",32);//總共32秒鐘
                    Animation::setDefaultInterpolationMode(Animation::IM_SPLINE);
                    
            //ami_bbsp->setInterpolationMode(Animation::IM_SPLINE);
                    NodeAnimationTrack* track=ami_bbsp->createNodeTrack(0,bbs_sp_node);

                    TransformKeyFrame
            * tk=track->createNodeKeyFrame(0);
                    tk
            ->setTranslate(Vector3(-500,-35,-200));//這里點坐標應該是世界坐標系里的吧?

                    tk
            =track->createNodeKeyFrame(2);
                    
            //tk->setTranslate(Vector3(rand(),-35,200));//ogre中怎樣隨機取值
                    tk->setTranslate(Vector3(-300,-35,-100));

                    tk
            =track->createNodeKeyFrame(4);
                    tk
            ->setTranslate(Vector3(0,-35,0));

                    tk
            =track->createNodeKeyFrame(6);
                    tk
            ->setTranslate(Vector3(0,-35,0));

                    tk
            =track->createNodeKeyFrame(8);
                    tk
            ->setTranslate(Vector3(100,-35,100));

                    tk
            =track->createNodeKeyFrame(10);
                    tk
            ->setTranslate(Vector3(50,-35,150));

                    tk
            =track->createNodeKeyFrame(12);
                    tk
            ->setTranslate(Vector3(-100,-35,150));

                    tk
            =track->createNodeKeyFrame(13);
                    tk
            ->setTranslate(Vector3(0,-35,200));

                    tk
            =track->createNodeKeyFrame(14);
                    tk
            ->setTranslate(Vector3(100,-35,200));

                    tk
            =track->createNodeKeyFrame(15);
                    tk
            ->setTranslate(Vector3(200,-35,200));

                    tk
            =track->createNodeKeyFrame(16);
                    tk
            ->setTranslate(Vector3(300,-35,200));

                    tk
            =track->createNodeKeyFrame(17);
                    tk
            ->setTranslate(Vector3(500,-35,200));

                    tk
            =track->createNodeKeyFrame(18);
                    tk
            ->setTranslate(Vector3(200,-35,300));

                    tk
            =track->createNodeKeyFrame(19);
                    tk
            ->setTranslate(Vector3(100,-35,300));

                    tk
            =track->createNodeKeyFrame(20);
                    tk
            ->setTranslate(Vector3(50,-35,300));

                    tk
            =track->createNodeKeyFrame(22);
                    tk
            ->setTranslate(Vector3(0,-35,300));

                    tk
            =track->createNodeKeyFrame(24);
                    tk
            ->setTranslate(Vector3(-50,-35,300));

                    tk
            =track->createNodeKeyFrame(26);
                    tk
            ->setTranslate(Vector3(-100,-35,300));

                    tk
            =track->createNodeKeyFrame(28);
                    tk
            ->setTranslate(Vector3(-200,-35,300));

                    tk
            =track->createNodeKeyFrame(30);
                    tk
            ->setTranslate(Vector3(-500,-35,300));

                    tk
            =track->createNodeKeyFrame(31);
                    tk
            ->setTranslate(Vector3(-500,-35,100));

                    tk
            =track->createNodeKeyFrame(32);
                    tk
            ->setTranslate(Vector3(-500,-35,-200));

                    bbsp_anistate
            =mSceneMgr->createAnimationState("anibbsp");
                    bbsp_anistate
            ->setEnabled(1);

                    
            /*    Ogre::RibbonTrail軌跡條(帶狀軌跡),: pubilic Ogre::BillboardChain : public MovableObject
                        我們通常通過公告板鏈來創建諸如閃電、電波、速度線和軌跡這種需要“跟隨前面的運動”而不是獨立的公告板集合產生的特效。
                        在Ogre中我們提供了一個現成的帶狀軌跡類型,用以實現追趕一個場景節點的公告板鏈,
                        就如同場景節點在空間中劃出一道光亮的軌跡一般的效果
                    
            */


                    
            //條狀軌跡初始化
                    
            //RibbonTrail* trial=mSceneMgr->createRibbonTrail()
                    NameValuePairList paralist;
                    paralist[
            "numberOfChains"]="1";        //2個RibbonTrail,默認為1,寫成0的時候怎樣?第一條軌跡的索引為0
                    paralist["maxElements"]="100";        //每一個RibbonTrail含有100個Billboard
                    RibbonTrail* trial = static_cast<RibbonTrail*>(
                        mSceneMgr
            ->createMovableObject("RibbonTrail_01","RibbonTrail",&paralist));//創建RibbonTrail的一種方式
                    trial->setMaterialName("Examples/LightRibbonTrail/particleSys");//在這個腳本中改變軌跡條的形狀
                    trial->setTrailLength(300);//軌跡條中每個元素的長度為3(300/"maxElements");
                    SceneNode* Node_Trail=mSceneMgr->getRootSceneNode()->createChildSceneNode(Vector3(0,200,0));
                    Node_Trail
            ->attachObject(trial);//掛接的這個Node到底是什么作用,難道這里trail是一個相當于BillboardSet的東西(容器)?

                    
            //初始化軌跡條
                    
            //顏色遞減式
                    trial->setInitialColour(0,ColourValue(1.0,1.0,1.0,1.0));
                    trial
            ->setColourChange(0,ColourValue(0.5,0.2,0.1,0.05));
                    
            //寬度遞減式
                    trial->setInitialWidth(0,5);
                    trial
            ->setWidthChange(0,1);

                    

                    SceneNode
            * node_trial_tral=mSceneMgr->getRootSceneNode()->createChildSceneNode();
                    Animation
            * aniTrail=mSceneMgr->createAnimation("Animation_trail",12);//節點動畫的名稱和運行的時間
                    Animation::setDefaultInterpolationMode(Animation::IM_SPLINE);
                    
            //或者
                    
            //aniTrail->setInterpolationMode(Animation::IM_SPLINE);
                    
            //NodeAnimationTrack* trialtrack=aniTrail->createNodeTrack(0,Node_Trail);
                    NodeAnimationTrack* trialtrack=aniTrail->createNodeTrack(0,node_trial_tral);
                    TransformKeyFrame
            * tf=trialtrack->createNodeKeyFrame(0);
                    tf
            ->setTranslate(Vector3(0,0,0));
                    tf
            =trialtrack->createNodeKeyFrame(2);
                    tf
            ->setTranslate(Vector3(0,100,0));
                    tf
            =trialtrack->createNodeKeyFrame(4);
                    tf
            ->setTranslate(Vector3(-100,0,0));
                    tf
            =trialtrack->createNodeKeyFrame(6);
                    tf
            ->setTranslate(Vector3(0,-100,0));
                    tf
            =trialtrack->createNodeKeyFrame(8);
                    tf
            ->setTranslate(Vector3(100,0,0));
                    tf
            =trialtrack->createNodeKeyFrame(10);
                    tf
            ->setTranslate(Vector3(0,100,0));
                    tf
            =trialtrack->createNodeKeyFrame(12);
                    tf
            ->setTranslate(Vector3(0,0,0));

                    
            //動畫狀態
                    stateTrail=mSceneMgr->createAnimationState("Animation_trail");
                    stateTrail
            ->setEnabled(TRUE);

                    
            //trial->addNode(Node_Trail);
                    trial->addNode(node_trial_tral);
                    
            //為軌跡條頭部裝上"導航點"
                    BillboardSet* trialSet=mSceneMgr->createBillboardSet("trialSet",1);
                    Billboard
            * bbtrial_01=trialSet->createBillboard(Vector3(0,0,0));
                    bbtrial_01
            ->setDimensions(60,60);
                    
            //trialSet->setMaterialName("Examples/trialSet");//在Billboard中可以放入任何東西,任何形狀,但最終都是方形的
                    trialSet->setMaterialName("Examples/praticlesys_bbs0");    //添加星星
                    node_trial_tral->attachObject(trialSet);

                    
            //BillboardChain公告板鏈
                    BillboardChain* chain=mSceneMgr->createBillboardChain("1chain");//不含具體的數據如:長度,chain條數,等信息
                    
            //chain->setMaterialName("Examples/LightRibbonTrail");//材質是閃電
                    chain->setNumberOfChains(4);//一個Chain索引號為0
                    chain->setTextureCoordDirection(BillboardChain::TCD_U);//從U方向上分割紋理

                    
            //存儲Element的Vector
                    BillboardChain::ElementList melementList;
                    
            for (int i=0;i<20;i++)
                    
            {
                        melementList.push_back(BillboardChain::Element(Vector3(i
            *10,i*10,i*10),5,0.05*i,
                                                ColourValue((Real)rand()
            /(Real)RAND_MAX,(Real)rand()/(Real)RAND_MAX,(Real)rand()/(Real)RAND_MAX)));
                    }

                    
            //解析Vector,并添加Element到chain中,1chain_0
                    BillboardChain::ElementList::iterator pelement;
                    
            for (pelement=melementList.begin();pelement !=melementList.end();++pelement)
                    
            {
                        
            //第一個參數為chain的索引號,即第幾個chain;第二個參數為元素
                        chain->addChainElement(0,*pelement);
                    }



                    Node_chain
            =mSceneMgr->getRootSceneNode()->createChildSceneNode("Node_chain",Vector3(0.0,0.0,-100));
                    Node_chain
            ->attachObject(chain);

                    
            {
                        chain
            ->updateChainElement(0,10,BillboardChain::Element(Vector3(100,100,100),5,0.5,ColourValue(0.0,0.0,0.0,1.0)));
                        chain
            ->updateChainElement(0,11,BillboardChain::Element(Vector3(110,110,110),5,0.55,ColourValue(0.0,0.0,0.0,1.0)));
                    }


                    Node_chain
            ->scale(0.5,0.5,0.5);

                    
            //1chain_1
                    
            //存儲Element的Vector
                    BillboardChain::ElementList melementList1;
                    
            for (int i=0;i<20;i++)
                    
            {
                        melementList1.push_back(BillboardChain::Element(Vector3(i
            *(-10),i*10,i*10),5,0.05*i,
                            ColourValue((Real)rand()
            /(Real)RAND_MAX,(Real)rand()/(Real)RAND_MAX,(Real)rand()/(Real)RAND_MAX)));
                    }

                    
            //解析Vector,并添加Element到chain中,1chain_0
                    BillboardChain::ElementList::iterator pelement1;
                    
            for (pelement1=melementList1.begin();pelement1 !=melementList1.end();++pelement1)
                    
            {
                        
            //第一個參數為chain的索引號,即第幾個chain;第二個參數為元素
                        chain->addChainElement(1,*pelement1);
                    }

                    
                    
            //1chain_2
                    
            //存儲Element的Vector
                    BillboardChain::ElementList melementList2;
                    
            for (int i=0;i<20;i++)
                    
            {
                        melementList2.push_back(BillboardChain::Element(Vector3(i
            *(-10),i*(-10),i*10),5,0.05*i,
                            ColourValue((Real)rand()
            /(Real)RAND_MAX,(Real)rand()/(Real)RAND_MAX,(Real)rand()/(Real)RAND_MAX)));
                    }

                    
            //解析Vector,并添加Element到chain中,1chain_0
                    BillboardChain::ElementList::iterator pelement2;
                    
            for (pelement2=melementList2.begin();pelement2 !=melementList2.end();++pelement2)
                    
            {
                        
            //第一個參數為chain的索引號,即第幾個chain;第二個參數為元素
                        chain->addChainElement(2,*pelement2);
                    }


                    
            //1chain_3
                    
            //存儲Element的Vector
                    BillboardChain::ElementList melementList3;
                    
            //melementList2.clear();
                    for (int i=0;i<20;i++)
                    
            {
                        melementList3.push_back(BillboardChain::Element(Vector3(i
            *10,i*(-10),i*10),5,0.05*i,
                            ColourValue((Real)rand()
            /(Real)RAND_MAX,(Real)rand()/(Real)RAND_MAX,(Real)rand()/(Real)RAND_MAX)));
                    }

                    
            //解析Vector,并添加Element到chain中,1chain_0
                    BillboardChain::ElementList::iterator pelement3;
                    
            for (pelement3=melementList3.begin();pelement3 !=melementList3.end();++pelement3)
                    
            {
                        
            //第一個參數為chain的索引號,即第幾個chain;第二個參數為元素
                        chain->addChainElement(3,*pelement3);
                    }



                    
                }


                
            void createFrameListener()
                
            {
                    mFrameListener
            =OGRE_NEW ParticleSysListener(mWindow,mCamera,mHeadAnistate,mHeadAnistate1,bbsp_anistate,
                                                                stateTrail,mRollHeadNode,Node_chain);
                    
            //mFrameListener->showDebugOverlay(true);
                    mRoot->addFrameListener(mFrameListener);
                }



            private:
                SceneNode
            * mRootSceneNode;
                SceneNode
            * mHeadNode;
                SceneNode
            * mRollHeadNode;
                SceneNode
            * mRollLeftNode;
                SceneNode
            * mRollRightNode;
                Animation
            * mHeadAnimation;
                AnimationState
            * mHeadAnistate;
                AnimationState
            * mHeadAnistate1;
                
            //SceneNode* mNode;
                AnimationState* bbsp_anistate;
                AnimationState
            * stateTrail;
                SceneNode
            * Node_chain;
            }
            ;
            posted on 2009-06-06 13:42 閆軍yy 閱讀(1364) 評論(2)  編輯 收藏 引用
            久久国产精品免费| 99精品久久久久久久婷婷| 久久热这里只有精品在线观看| 天堂无码久久综合东京热| 久久久久久精品久久久久| 精品久久久久久中文字幕| 久久免费大片| 久久久国产精品福利免费| 国产精品成人久久久| 9久久9久久精品| 人妻无码精品久久亚瑟影视| 精品久久一区二区| 久久久国产视频| 国产成人精品久久亚洲高清不卡| 久久久国产打桩机| 久久久久香蕉视频| 999久久久无码国产精品| 狠狠精品久久久无码中文字幕| 国产精品久久久久久久久久免费| 久久99精品国产麻豆宅宅| 久久精品成人免费观看97| 国产99久久精品一区二区| 亚洲狠狠婷婷综合久久蜜芽| 久久嫩草影院免费看夜色| 国产午夜精品理论片久久影视| 一本久久知道综合久久| 久久影视综合亚洲| 久久e热在这里只有国产中文精品99 | 久久久久无码精品| 色成年激情久久综合| 久久er热视频在这里精品| 久久精品国产清高在天天线| 久久久精品人妻一区二区三区蜜桃| 欧美久久天天综合香蕉伊| 久久成人国产精品一区二区| 国产精品一久久香蕉产线看| 精品人妻久久久久久888| 久久精品中文无码资源站| 久久久久高潮毛片免费全部播放| 天天爽天天狠久久久综合麻豆| 亚洲av日韩精品久久久久久a|