中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

cocos2d-3x 版本tableview的使用(怎么取消彈簧效果);

發布時間:2020-07-23 23:42:15 來源:網絡 閱讀:1233 作者:luo976370248 欄目:編程語言

1.在VS中設置 C++ 附加包含目錄編輯添加$(EngineRoot)這句話。

2.引入頭文件 cocos2d-3x 版本tableview的使用(怎么取消彈簧效果);,而不這樣 cocos2d-3x 版本tableview的使用(怎么取消彈簧效果);寫的目的是為了解決安卓找不到tableview。在引入 cocos2d-3x 版本tableview的使用(怎么取消彈簧效果);命令空間。

3.實現tableview的功能,首頁要共有繼承TableViewDataSourceTableViewDelegate兩個代理類。

4.實現下面的虛方法

virtual void scrollViewDidScroll(cocos2d::extension::ScrollView*view)override{};

   virtual void scrollViewDidZoom(cocos2d::extension::ScrollView*view)override{}

   virtual void tableCellTouched(cocos2d::extension::TableView*table,cocos2d::extension::TableViewCell*cell)override;

   virtual cocos2d::Size tableCellSizeForIndex(cocos2d::extension::TableView*table,ssize_tidx)override;

   virtual cocos2d::extension::TableViewCelltableCellAtIndex(cocos2d::extension::TableView*table,ssize_tidx)override;

   virtual ssize_t numberOfCellsInTableView(cocos2d::extension::TableView*table)override;

 

5.廢話不多說直接上代碼

#include"MenuColor.h"

#include"VisibleRect.h"

#include"GlobalDefine.h"

#include"GlobalArray.h"

USING_NS_CC;

MenuColorMenuColor::create(floatwidth,floatheight)

{

   automenucolor=new(std::nothrow)MenuColor();

   if(menucolor&&menucolor->init(width,height))

   {

      menucolor->autorelease();

      returnmenucolor;

   }

   else

   {

      CC_SAFE_DELETE(menucolor);

      returnnullptr;

   }

}

bool MenuColor::init(floatwidth,floatheight)

{

   if(!LayerColor::initWithColor(Color4B(0,0,0,0),width,height))

   {

      returnfalse;

   }

 

   this->setAnchorPoint(Vec2::ZERO);

   _color3b=Color3B(255,0,0);

   _cellnum=-100;

 

   //創建tableview

   TableViewtableView=TableView::create(this,Size(120*resourceScale,height));

   tableView->setDirection(ScrollView::Direction::VERTICAL);

   tableView->setPosition(Vec2::ZERO);

   tableView->setDelegate(this);

   tableView->setDataSource(this);

   tableView->setVerticalFillOrder(TableView::VerticalFillOrder::TOP_DOWN);

   this->addChild(tableView);

   tableView->reloadData();

   this->setSwallowsTouches(false);

 

   returntrue;

}

void MenuColor::tableCellTouched(cocos2d::extension::TableView*table,cocos2d::extension::TableViewCell*cell)

{

   if(_cellnum>=1)

   {

      __Stringselect1=StringUtils::format("colorselect_%zd.png",_cellnum+10);

      autocell2=(TableViewCell*)table->cellAtIndex(_cellnum-1);

 

      if(cell2!=nullptr)

      {

        autoframe=getSpriteFrameByName(select1.getCString());

        autosp2=Sprite::createWithSpriteFrame(frame);

        cell2->removeAllChildren();

        cell2->addChild(sp2);

        sp2->setAnchorPoint(Vec2::ZERO);

        sp2->setPosition(Vec2::ZERO);

        sp2->setScale(resourceScale);

       

        frame=getSpriteFrameByName("colorselect.pmg");

        autosp=Sprite::createWithSpriteFrame(frame);

        sp->setAnchorPoint(Vec2::ZERO);

        sp->setPosition(Vec2(0,-4));

        sp->setScale(resourceScale);

        cell->addChild(sp,4,_cellnum);

        _cellnum=(int)cell->getIdx();

      }

      else

      {

        autoframe=getSpriteFrameByName("colorselect.pmg");

        autosp=Sprite::createWithSpriteFrame(frame);

        sp->setAnchorPoint(Vec2::ZERO);

        sp->setPosition(Vec2(0,-4));

        sp->setScale(resourceScale);

        cell->addChild(sp,4,_cellnum);

        _cellnum=(int)cell->getIdx()+1;

      }

   }

   else

   {

      _cellnum=(int)cell->getIdx()+1;

      autoframe=getSpriteFrameByName("colorselect.png");

      autosp=Sprite::createWithSpriteFrame(frame);

      sp->setAnchorPoint(Vec2::ZERO);

      sp->setPosition(Vec2(0,-4));

      sp->setScale(resourceScale);

      cell->addChild(sp,4,_cellnum);

   }

 

   intr=colorMap[cell->getIdx()][0];

   intg=colorMap[cell->getIdx()][1];

   intb=colorMap[cell->getIdx()][2];

 

   _color3b=Color3B(r,g,b);

 

   if(_colorDelegate!=nullptr)

   {

      _colorDelegate->setColor3B(_color3b);

   }

}

Size MenuColor::tableCellSizeForIndex(cocos2d::extension::TableView*table,ssize_tidx)

{

   returnSize(100*resourceScale,110*resourceScale);

}

TableViewCellMenuColor::tableCellAtIndex(cocos2d::extension::TableView*table,ssize_tidx)

{

   autocell=table->cellAtIndex(idx);

   autoselect1=StringUtils::format("colorselect_%zd.png",idx+11);

  

   if(!cell)

   {

      cell=new(std::nothrow)TableViewCell();

      cell->autorelease();

      autoframe=getSpriteFrameByName(select1.c_str());

      autosprite=Sprite::createWithSpriteFrame(frame);

      sprite->setAnchorPoint(Vec2::ZERO);

      sprite->setPosition(Vec2(4*resourceScale,0));

      sprite->setScale(resourceScale);

      cell->addChild(sprite);

      cell->setTag((int)idx+1);

   }

 

   returncell;

}

 

ssize_t MenuColor::numberOfCellsInTableView(cocos2d::extension::TableView*table)

{

   return24;

}

 

void MenuColor::setDrawColorDelegate(ColorDelegate*delegate)

{

   _colorDelegate=delegate;

}

 

Color3B MenuColor::getColor3B()

{

   return_color3b;

}

但是根據某些需求不想要tableview自帶的彈簧效果,可以使用 tableView->setBounceable(false);來關閉彈簧效果。但是沒有了慣性。重寫下面的方法就可以解決這個問題


virtual void scrollViewDidScroll(cocos2d::extension::ScrollView* view)override {

      

        //取消彈性

        auto layout = view->getContainer();

        float currentY = layout->getPositionY();

        if(currentY > 0)

        {

            view->setContentOffset(cocos2d::Vec2(0,0));

        }

        if(-currentY > layout -> getContentSize().height - view -> getViewSize().height)

        {

            view -> setContentOffset(cocos2d::Vec2(0, -layout -> getContentSize().height + view -> getViewSize().height));

        }

        

    }

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

二手房| 德安县| 泸水县| 郴州市| 霍城县| 克东县| 九龙城区| 遂宁市| 万源市| 湘乡市| 郴州市| 邢台县| 水富县| 青田县| 贞丰县| 莱西市| 昌宁县| 黑龙江省| 红河县| 安达市| 神农架林区| 芒康县| 井陉县| 保德县| 徐州市| 临泉县| 集安市| 敦化市| 桂林市| 茂名市| 兴宁市| 峡江县| 平顺县| 桃园市| 佛坪县| 十堰市| 云霄县| 贺兰县| 武宣县| 五台县| 丘北县|