cocos2dx自定义的滑动滚条
来源:互联网 发布:python可视化窗口编程 编辑:程序博客网 时间:2024/04/30 01:36
bool isTouching;//是否在正在触摸屏幕 bool isRoll;//是否正在滚动 bool isSectionChange;//是否改变了选项 bool isClick;//是否点击该选项 float oldPX;//旧坐标 float newPX;//新坐标 float speedDown;//减速度
void MainScene::update(float dt){ this->isRoll = false; this->newPX =this->scrollView->getInnerContainer()->getPosition().x; if(int(this->scrollView->getInnerContainer()->getPosition().x) == 0 ||//如果在头尾,速度设为原来的值 int(this->scrollView->getInnerContainer()->getPosition().x) == -((400+SPACE)*5.3-scrollView->getSize().width)) { speedDown = 6; isTouching = false; } if(isTouching == false) { //各个选项的位置 int A = -140; int B = A - guankaLast1->getSize().width-SPACE; int C = B - guankaLast1->getSize().width-SPACE; int D= C - guankaLast1->getSize().width-SPACE; int E= D - guankaLast1->getSize().width-SPACE; //选项数组 int array[] = {A, B, C, D, E}; //头部回弹 if(int(this->scrollView->getInnerContainer()->getPosition().x)>array[0]) { this->isRoll = true; isSectionChange = true; this->scrollView->scrollChildren(-speedDown); speedDown-=0.1; if(speedDown<1) { speedDown = 1; } } //中间逻辑 for (int i = 0; i<5; i++) { if(int(this->scrollView->getInnerContainer()->getPosition().x)<array[i]-3 && int(this->scrollView->getInnerContainer()->getPosition().x)>array[i+1]+3) { this->isRoll = true; isSectionChange = true; if(this->newPX<this->oldPX) { CCLog("old>new"); this->scrollView->scrollChildren(-speedDown); } else { CCLog("old<new"); this->scrollView->scrollChildren(speedDown); } speedDown -= 0.01; if (speedDown<1) { speedDown = 1; } } } //尾部回弹 if(int(this->scrollView->getInnerContainer()->getPosition().x)<array[4] ) { this->isRoll = true; isSectionChange = true; this->scrollView->scrollChildren(speedDown); speedDown-=0.1; if(speedDown<1) { speedDown = 1; } } //如果在滚动 if(this->isRoll) { this->rotateLight->setVisible(false); } //判断停止位置 if (this->isRoll == false && isSectionChange == true) { isSectionChange = false; for (int i = 0; i < 5; i++) { if (int(this->scrollView->getInnerContainer()->getPosition().x) <= array[i]+3 && int(this->scrollView->getInnerContainer()->getPosition().x) >= array[i]-3) { this->selectSection(i); if (GDI->isSectionCanOpened(i)) { this->rotateLight->setVisible(true); } } } } }}
//滑动容器模块 UIImageView* background = (UIImageView*) this->mainLayer->getWidgetByTag(121); backgoundSize =background->getContentSize(); backgoundPosition =background->getPosition(); scrollView = UIScrollView::create(); scrollView->setDirection(SCROLLVIEW_DIR_HORIZONTAL); scrollView->setTouchEnable(true); scrollView->setSize(backgoundSize-CCSize(25,0)); scrollView->setInnerContainerSize(CCSize( (400+SPACE)*5.3, scrollView->getSize().height)); scrollView->setPosition(backgoundPosition-CCPoint(backgoundSize.width/2, backgoundSize.height/2)+CCPoint(5,0)); this->scrollView->addTouchEventListener(this, toucheventselector(MainScene::pageViewEvent)); this->mainLayer->addWidget(this->scrollView);
Layout* layout = Layout::create(); layout->setSize(backgoundSize); guankaLast2->setPosition(CCPoint(guankaLast1->getPosition().x+guankaLast1->getSize().width+SPACE,backgoundPosition.y-330)); layout->addChild(guankaLast2); scrollView->addChild(layout); { this->guankaLast2->setScaleX(1.5); this->guanka2Ani->setScaleX(1 / 1.5); this->guanka2Bor->setScaleX(1 / 1.5); }
//button按钮事件
switch (type) { case cocos2d::extension::TOUCH_EVENT_BEGAN: this->isTouching = true; this->isClick = true; this->oldPX = this->scrollView->getInnerContainer()->getPosition().x; this->speedDown = 6; CCLog("began"); break; case cocos2d::extension::TOUCH_EVENT_MOVED: this->isClick = false; CCLog("move"); break; case cocos2d::extension::TOUCH_EVENT_ENDED: if (isClick) { } this->isTouching =false; CCLog("ended"); break; case cocos2d::extension::TOUCH_EVENT_CANCELED: this->isTouching =false; CCLog("canceled"); break; default: break; }
0 0
- cocos2dx自定义的滑动滚条
- cocos2dx滑动条实现
- cocos2dx CCControlSlider 滑动条
- Anroid自定义可滑动的音量条
- ViewPager自定义滑动条
- 自定义滚的CustomScrollView
- Android 仿 iPhone 自定义滚条视图
- Android自定义SeekBar滑动条
- 自定义 弧形滑动条 CricleScrollView
- 自定义qml滑动条Slider
- C#自定义控件加滑动条的简单实现
- android SeekBar自定义样式滑动条的使用
- 滑动条的使用
- 滑动的导航条
- Android 仿 Iphone 自定义滚条视图(wheelview)
- cocos2dx的自定义log
- cocos2dx 的自定义事件
- Android中自定义滑动条风格
- acm水仙花数问题
- 学习笔记 --- LINUX 驱动调试之printk
- 代码调试时积累的知识(2)
- 鼠绘卡通人物
- 零 初识ABAP
- cocos2dx自定义的滑动滚条
- C语言之动态函数的使用
- 项目进度【困难篇】
- thrift的enum:根据value取得name
- 反向进程注入及隐藏--动手做一个最简单的PELoader
- C++实现链表的创建、插入、删除
- acm平方和与立方和
- 几个发人省思的小故事
- 插入排序