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