cocos2dx tableview的实际应用

本文介绍了如何在Cocos2d-x中使用TableView实现游戏中的物品栏功能,特别是在卡牌游戏和RPG中的应用。通过继承tableViewdatasource和TableViewDelegate,重载相关方法来创建和管理单元格,包括单元格数量、大小、内容加载及点击事件处理。同时,文章提到了元素点击时的世界坐标与cell内部坐标的转换问题,并给出了解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

tableview作为一种UI是非常实用的,它可以显示多列元素,并且可以通过滑动来即时加载元素,常用的就是游戏中的物品栏,物品栏在各类游戏中都占有很重要的地位,卡牌游戏中卡牌的整理,RPG中的物品栏等,这些都需要滑动换页,元素点击的要素,而tableview在功能上能够完美的实现这个,接下来以实际的卡牌的整理界面来介绍tableview
一,要使用tableview首先需要继承cocos2dx中tableviewdatasource和TableViewDelegate两个类,并重载其中的四个方法
virtual TableViewCell* tableCellAtIndex(TableView *table,ssize_t idx);
//返回单元格个数,指的是行数,不是指行内总元素的个数
virtual ssize_t numberOfCellsInTableView(TableView *table);
//根据index设置单元格大小,同样指每行的size
virtual Size tableCellSizeForIndex(TableView *tabe,ssize_t idx);
//cell中的元素显示,即每行中要显示的元素都是在这个函数中完成载入的
virtual void tableCellTouched(TableView *table ,TableViewCell *cell);
//cell的点击事件,即每行的点击事件
四个方法的重载如下:

//这里需要使用dequeuecell来获得cell,如果直接在内部创建cell会导致cell被重复创建,元素的显示会变异常,需要注意仅在获得的cell为空的前提下才创建cell,否则只需改变
原有cell中的元素即可,
TableViewCell* CardSelectScene::tableCellAtIndex(TableView *table,ssize_t idx){
    TableViewCell *cell=table->dequeueCell();
    auto barray=Array::create();
    int index=idx*3;
    int indexfor=0;
    int length=0;
    if(table->getTag()==0){
        barray=array;
    }else if(table->getTag()==1){
        barray=sarray;
    }
    if(barray!=NULL){
     if(barray->count()-index
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值