cocos2d-x之CCGUI设计与实现(3)循环列表框的实现(数字选择器)
来源:互联网 发布:网络社交平台有哪些 编辑:程序博客网 时间:2024/05/29 16:19
真心不好意思,为了防止CSDN把我的彩色“恒”弄成灰白的,每月预先会标记几篇博客充数哈哈。
不自恋了,这篇说说循环列表框的实现思路。
我们知道,cocos2d-x扩展里面提供了一个CCScrollView的实现,这东西写的还不错,大致模拟了系统的那种滑动效果,并有裁剪的效果。对于数字选择器(NumberPicker)控件,我们首先需要在CCSrollView的基础上实现一个列表框(ListBox),列表框的实现不会太难,博文里面就不详细讲了。
ListBox提供几个简单的接口,addItem,removeItem等,那么想想该如何让这个ListBox在拖动到最顶或者最底时自动循环呢?
如果你的思路局限在如何往ListBox添加需要的元素以接着让ListBox能够继续滚动的话,那估计就比较难实现一个高效的循环列表了。
在实现循环列表之前,我首先想到的实现一个平衡列表——列表框的中心部分作为平衡锚点,如果列表上移或者下移,导致列表不再平衡,则调整列表元素位置,使之保持平衡状态。
对于循环列表,如果往下移,每下移一格作为非平衡的判定条件,此时将顶部元素移动到最下部,并重置ScrollView的offset。
由于这种设计不涉及元素(精灵、纹理)的增删操作,只是在某一帧设置元素的位置,效率是非常高的,最初在设计时有些担心重置元素时存在抖动问题,但最终显示效果还是很平滑的。
- cocos2d-x之CCGUI设计与实现(3)循环列表框的实现(数字选择器)
- cocos2d-x之CCGUI设计与实现(4)分页列表框的实现(仿IOS图标分页列表)
- cocos2d-x之CCGUI设计与实现(1)序言
- cocos2d-x之CCGUI设计与实现(1)序言
- cocos2d-x之CCGUI设计与实现(5)树形控件的实现
- cocos2d-x之CCGUI设计与实现(2)RichTextBox的实现(支持多颜色、表情、超链接)
- cocos2d-x之CCGUI设计与实现(1)序言
- cocos2d-x 弹出对话框的设计与实现
- Cocos2d-x 弹出对话框的设计与实现
- Cocos2d-x 弹出对话框的设计与实现
- Cocos2d-x 弹出对话框的设计与实现
- cocos2d-x3.x 弹出对话框的设计与实现
- Cocos2d-x 自定义实现下拉列表框(两种实现方法)
- Cocos2d-x CCTableView实现列表
- cocos2d-x实现列表滑动
- Cocos2d-x CCTableView实现列表
- Cocos2d-x CCTableView实现列表
- cocos2d-x下拉列表实现
- 进程与线程的一个简单解释
- fzu_1894 志願者選拔( 單調隊列 )
- cocos2d-x之CCGUI设计与实现(2)RichTextBox的实现(支持多颜色、表情、超链接)
- 黑马程序员_JAVA之路6——面向对象2(static、main函数、对象)
- jQuery中读取json文件
- cocos2d-x之CCGUI设计与实现(3)循环列表框的实现(数字选择器)
- 高性能服务器开发
- linux内核如何管理进程
- cocos2d-x之CCGUI设计与实现(4)分页列表框的实现(仿IOS图标分页列表)
- android 如何动态打印日志
- 指针与数组--a与&a区别
- C#序列化和反序列化剖析
- 计算机是如何启动的?
- cocos2d-x之CCGUI设计与实现(5)树形控件的实现