cocos2dx自学之路 精灵执行动作+TableView控件

首先是TableView

首先需要新建一个类 然后 继承TableViewDataSource,TableViewDelegate

重写

public:
    virtual Size cellSizeforTable(TableView *table);
    virtual TableViewCell* tableCellAtIndex(TableView *table,ssize_t idx);
    virtual ssize_t numberOfCellsInTableView(TableView *table);
public:
	virtual void tableCellTouched(TableView* table,TableViewCell* cell);

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

然后再重写的方法中设置tableview
/**
 **设置Table的尺寸 Size第二个参数是 每列的高度距离,第一个参数作用未知
 **/
/*Size HelloWorld::cellSizeforTable(cocos2d::extension::TableView *table){
	return Size(5,50);
}


TableViewCell* HelloWorld::tableCellAtIndex(cocos2d::extension::TableView *table,ssize_t idx){
	TableViewCell *cell = table->dequeueCell();
	//LabelTTF *label;
	Sprite * sprite;
	if(cell==NULL){
		cell = TableViewCell::create();
		sprite = Sprite::create("cell.jpg");
		sprite->setTag(2);
		sprite->setAnchorPoint(Point(0,0));//设置列 的锚点 不设置会显示不完整
		cell->addChild(sprite);
	}else{
		sprite =  (Sprite*)cell->getChildByTag(2);

	}
	//set data
	
	return cell;

}

ssize_t HelloWorld::numberOfCellsInTableView(cocos2d::extension::TableView *table){
	return 100;
} */

/************ Touched Event **************/  //点击TableView事件
/*void HelloWorld::tableCellTouched(cocos2d::extension::TableView *table,TableViewCell *cell){
	log("you touched!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!");
} 



最后是 使用tableview

/*TableView *tableView = TableView::create(this,Size(200,350)); //Size的第二个参数是 table的高度,第一个参数是table宽度
	
   // tableView->setDirection(ScrollViewDirectionVertical);
	tableView->setAnchorPoint(Point(0,0));
    tableView->setPosition(400,0);//xy坐标
    tableView->setDelegate(this);
    //tableView->setVerticalFillOrder(TableViewFillTopDown);
    this->addChild(tableView);*/





接下来是精灵执行动作的一些示例,在此做上笔记

	//普通移动精灵
	/*auto sprite = Sprite::create("HelloWorld.png");
	sprite->setPosition(visibleSize/2);
	sprite->setPositionX(100);
	sprite->setScale(0.5); //缩放
	this->addChild(sprite);
	sprite->runAction(Moveto::create(2,Vec2(visibleSize.width-100,visibleSize.height/2))); //移动action*/


	/********************  动作 ***************************/
	//顺序执行动作
	/*auto move1 = Moveto::create(2,visibleSize.height/2));
	auto move2 = MoveBy::create(2,Vec2(-700,0));
	sprite->runAction(Sequence::create(move1,move2,NULL));*/
	//顺序执行动作方式2
	/*auto move1=MoveBy::create(2,Vec2(700,0));
	auto move2=move1->reverse();
	sprite->runAction(Sequence::create(move1,NULL));*/

	//并列执行动作
	/*auto move = MoveBy::create(2,0));
	auto scale = Scaleto::create(2,1);
	//sprite->runAction(Spawn::create(move,scale,NULL));
	//动作执行完毕回调函数
	sprite->runAction(Sequence::create(Spawn::create(move,NULL),CallFunc::create([](){
		cclOG("action complete");
	}),NULL));

相关文章

    本文实践自 RayWenderlich、Ali Hafizji 的文章《...
Cocos-code-ide使用入门学习地点:杭州滨江邮箱:appdevzw@1...
第一次開始用手游引擎挺激动!!!进入正题。下载资源1:从C...
    Cocos2d-x是一款强大的基于OpenGLES的跨平台游戏开发...
1.  来源 QuickV3sample项目中的2048样例游戏,以及最近《...
   Cocos2d-x3.x已经支持使用CMake来进行构建了,这里尝试...