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

来源:互联网 发布:swift 自定义元素数组 编辑:程序博客网 时间:2024/05/09 21:43

首先是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 datareturn 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,Vec2(visibleSize.width-100,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,move2,NULL));*///并列执行动作/*auto move = MoveBy::create(2,Vec2(700,0));auto scale = ScaleTo::create(2,1);//sprite->runAction(Spawn::create(move,scale,NULL));//动作执行完毕回调函数sprite->runAction(Sequence::create(Spawn::create(move,scale,NULL),CallFunc::create([](){CCLOG("action complete");}),NULL));




0 0
原创粉丝点击