加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-14 14:17:08 所属栏目:百科 来源:网络整理
导读:首先是TableView 首先需要新建一个类 然后 继承TableViewDataSource,TableViewDelegate 重写 public: virtual Size cellSizeForTable(TableView *table); virtual TableViewCell* tableCellAtIndex(TableView *table,ssize_t idx); virtual ssize_t numberOf

首先是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));

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读