Cocos2dx中实现分页效果

游戏中实现分页还是很有必要的,无论是背包/商店还是其他一些有列表显示的模块,因为实现分页会给手机减轻不少压力。在这里我先说明,我实现的分页是数据已经全部加载完成了的, 而其分页的作用也就是减轻GPU的压力。(当然,要想将数据也和显示一一对应的话,也是不难实现的,得看情况和项目需求)

我的思路是这样的,既然已经加载了所有分页的数据,那么按显示进行分开的话,所以在每一页的初始元素在整个列表数据的位置以及末尾元素在整个列表的位置 都是有规律地进行变化的。那么,我首先进行的任务的就是根据当前页数去计算该页进行显示的列表的首元素以及末元素在整个数据集的位置了。

在这里我先介绍一下我的页面数字展示是这样定义的:

1
2
//保存每个listview对应的页码:当前页码和最大页码 
int m_pageStarts[2];
而数据是已经加载进view里面(看需求,一般这种加载大数据操作是在登录时完成的)的了:
1
2
//第一个int为place(从0开始) 
std::map< int, xxx >  m_datas;

返回当页加载的元素个数(这里定义了一个成员变量是当前页面首元素的place):

1
2
3
4
5
6
7
8
9
10
11
int startPlace = 0; 
   
int xxx::repeateNum() 
        int startData = m_pageStarts[0] * DATA_IN_ONE_PAGE;       //第一页为0×8=0,第二页为1×8=1 
        int endData = (m_pageStarts[0]+1 == m_pageStarts[1] || m_pageStarts[1] == 0)  
               ? m_datas.size() : (m_pageStarts[0]+1)  * DATA_IN_ONE_PAGE; 
         
        startPlace = startData; 
        return endData - startData; 
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值