Cocos2d-x   发布时间:2022-05-03  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了cocos2dx tableview基础:实现多图片的滑动显示大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

通过tableview实现滑动显示26个字母图片,点击图片执行相应的动作。

tableview 需要继承TableViewDatasource(数据源),TableViewDelegate(触屏事件处理),同时实现其虚函数。

代码如下:

头文件TableViewTest.h如下


#ifndef __macstudycocos2dx__TableViewtest__

#define __macstudycocos2dx__TableViewtest__


#include <stdio.h>

#include "cocos2d.h"

#include "extensions/cocos-ext.h"


USING_NS_CC;

USING_NS_CC_EXT;


//void runTableViewTest();


class TableViewTest:publiccocos2d::Layer,publiccocos2d::extension::TableViewDatasource,publiccocos2d::extension::TableViewDelegate

{

public:

static cocos2d::Scene* createScene();

virtual bool init();

void toExtensionMainLayer(cocos2d::Ref *sender);

CREATE_FUNC(TableViewTest);

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

//重写滑动事件

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

//重写缩放事件

//以下重写TableViewDatasource的虚函数

virtualvoid tableCellTouched(cocos2d::extension::TableView* table,cocos2d::extension::TableViewCell* cell);

//定义单元触碰事件

virtual Size tableCellSizeForIndex(TableView *table,ssize_t idX);

//定义单元的大小

virtual TableViewCell* tableCellATindex(cocos2d::extension::TableView* table,ssize_t idX);

//定义单元格

virtual ssize_t numberOfCellsInTableView(cocos2d::extension::TableView* tablE);

//定义单元格数量

};


#endif /* defined(__macstudycocos2dx__TableViewtest__) */


TableViewTest.cpp如下:


#include "TableViewTest.h"


Scene* TableViewTest::createScene()

{

// 'scene' is an autorelease object

auto scene = Scene::create();

// 'layer' is an autorelease object

auto layer = TableViewTest::create();

// add layer as a child to scene

scene->addChild(layer);

// return the scene

return scene;

}


bool TableViewTest::init(){

if (!Layer::init()) {

return false;

}

Size winSize=Director::geTinstance()->getWinSize();

TableView* tableView=TableView::create(this,Size(800,300));

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

tableView->setPosition(Vec2(20,winSize.height/2-30));

tableView->setDelegate(this);

this->addChild(tableView);

tableView->reloadData();

return true;

}




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

log("cell touched at index:%ld",cell->getIdx());

}


SizeTableViewTest::tableCellSizeForIndex(cocos2d::extension::TableView* table,ssize_t idX){

return Size(300,150);

}


TableViewCell* TableViewTest::tableCellATindex(cocos2d::extension::TableView* table,ssize_t idX){

auto leTindex=idx+1;

auto String=String::createWithFormat("let%ld.png",leTindeX);

TableViewCell *cell=table->cellATindex(idX);

if (!cell) {

cell=newTableViewCell();

cell->autorelease();


auto sprite=Sprite::create(String->getCString());

sprite->setAnchorPoint(Vec2::ZERO);

sprite->setPosition(Vec2(0,0));

cell->addChild(spritE);

auto label=Label::createWithSystemFont(String->getCString(),"arial",30);

label->setPosition(Vec2::ZERO);

label->setAnchorPoint(Vec2::ZERO);

label->setTag(123);

cell->addChild(label);

}

else{

auto label=(Label*)cell->getChildByTag(123);

label->setString(String->getCString());

}

return cell;

}



ssize_tTableViewTest::numberOfCellsInTableView(cocos2d::extension::TableView *tablE){

return 26;

}


最好实现的效果如下:

大佬总结

以上是大佬教程为你收集整理的cocos2dx tableview基础:实现多图片的滑动显示全部内容,希望文章能够帮你解决cocos2dx tableview基础:实现多图片的滑动显示所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。