ScrollView与TableView实现选择效果

在cocos2dx中,ScrollView与TableView都可以实现选择效果,其中ScrollView较为原始,TableView的格子大小可以不与winSize一样大。

ScrollView实现

#include "T25ScrollView.h"
#include "AppMacros.h"CCScene* T25ScrollView::scene()
{CCScene *scene=CCScene::create();T25ScrollView* layer=T25ScrollView::create();scene->addChild(layer);return scene;
}bool T25ScrollView::init()
{CCLayer::init();CCNode *node=CCNode::create();_node=node;char buf[]="a";for (int i=0;i<5;i++){CCSprite *s=CCSprite::create("HelloWorld.png");node->addChild(s);s->setPosition(ccp(i*winSize.width,0));s->setAnchorPoint(ccp(0,0));CCLabelTTF *label=CCLabelTTF::create(buf,"Arial",24);buf[0]++;s->addChild(label);label->setPosition(ccp(winSize.width/2,winSize.height/2));}CCScrollView *view=CCScrollView::create(winSize,node);addChild(view);view->setDirection(kCCScrollViewDirectionHorizontal);view->setContentSize(CCSizeMake(winSize.width*5,winSize.height));view->setBounceable(false); //get rid of elasticsetTouchEnabled(true);setTouchMode(kCCTouchesOneByOne);return true;
}bool T25ScrollView::ccTouchBegan(CCTouch *pTouch, CCEvent *pEvent)
{return true;
}
void T25ScrollView::adjustViewPosition(float dt)
{//calculate int fitPos[]={0,-winSize.width,-winSize.width*2,-winSize.width*3,-winSize.width*4};int x=_node->getPositionX();int i;for(i=0;i<5;i++){int dist=abs(fitPos[i]-x);if (dist<winSize.width/2){break;}}CCPoint ptDest=ccp(fitPos[i],0);_node->runAction(CCMoveTo::create(0.2f,ptDest));
}
void T25ScrollView::ccTouchEnded(CCTouch *pTouch, CCEvent *pEvent)
{//judge if is sliderif (isSlider(pTouch)){//adjust position scheduleOnce(schedule_selector(T25ScrollView::adjustViewPosition),0.05f);return;}//judge which position is clickedCCPoint ptWorld=pTouch->getLocation();CCPoint ptNode=_node->convertToNodeSpace(ptWorld);int index=ptNode.x/winSize.width;CCLog("click index =%d",index);
}bool T25ScrollView::isSlider(CCTouch *PTouch)
{CCPoint ptCur=PTouch->getLocation();CCPoint ptStart=PTouch->getStartLocation();if (ptCur.getDistanceSq(ptStart)>25){return true;}return false;
}

TableView实现

#include "T26TableView.h"
#include "AppMacros.h"CCScene* T26TableView::scene()
{CCScene *scene=CCScene::create();T26TableView* layer=T26TableView::create();scene->addChild(layer);return scene;
}bool T26TableView::init()
{CCLayer::init();CCSize cellSize=CCSize(80,80);_cells=CCArray::create();_cells->retain();for(int i=0;i<5;i++){CCTableViewCell *cell=new CCTableViewCell;_cells->addObject(cell);cell->autorelease();CCSprite *sprite=CCSprite::create("p_2_01.png");cell->addChild(sprite);sprite->setPosition(ccp(cellSize.width/2,cellSize.height/2));}CCTableView *view=CCTableView::create(this,CCSize(cellSize.width*3,cellSize.height));addChild(view);view->setDirection(kCCScrollViewDirectionHorizontal);view->reloadData();view->setPosition(ccp(200,200));//response clickview->setDelegate(this);return true;
}

其中在TableView中使用了代理的设计模式,类要继承public CCTableViewDataSource,public CCTableViewDelegate,并且实现他们的纯虚函数,从而达到代理的效果

运行效果

结果

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/494488.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

科学家发现新的人类脑细胞,或可解答一个难题

来源&#xff1a;中国生物技术网关于人类大脑最令人感兴趣的问题之一&#xff0c;也是神经科学家们最难回答的问题之一&#xff0c;就是到底是什么让我们的大脑与其他动物的大脑区别开来。Allen脑科学研究所的研究员Ed Lein博士说&#xff1a;“我们并不清楚是什么让人类大脑变…

【每日SQL打卡】​​​​​​​​​​​​​​​DAY 6丨统计各专业学生人数【难度中等】

活动介绍&#xff1a; 「数据仓库技术交流群」已经正式启动每日SQL打卡&#xff0c;帮助大家扎实基础&#xff0c;努力工作之余&#xff0c;别忘了自我提升。 欢迎报名和邀请小伙伴参与&#xff0c;一个人可能走得很快&#xff0c;但一群人会走得很远。 &#x1f345;题目汇总(…

五问智能教育未来发展:重点解决什么问题?

来源&#xff1a;人民日报日前&#xff0c;首届中国智能教育大会在北京举行&#xff0c;教育部有关负责人、人工智能专家和教育专家、一些地方政府及教育行政部门负责人、大中小学校长、教师和企业家等近1000人参加。与会代表认为&#xff0c;智能教育将会越来越多地影响每一个…

【每日SQL打卡】​​​​​​​​​​​​​​​DAY 6丨寻找用户推荐人【难度简单】

活动介绍&#xff1a; 「数据仓库技术交流群」已经正式启动每日SQL打卡&#xff0c;帮助大家扎实基础&#xff0c;努力工作之余&#xff0c;别忘了自我提升。 欢迎报名和邀请小伙伴参与&#xff0c;一个人可能走得很快&#xff0c;但一群人会走得很远。 &#x1f345;题目汇总(…

实现超级玛丽上下左右运动

用Cocos2dx实现超级玛丽&#xff0c;首先用帧循环定时器判断方向&#xff0c;再在类中实现运行以及判断是否能运动。 方向控制 void LayerGame::moveMario(float dt) { #ifdef WIN32short key;key GetKeyState(F);if (key < 0) _marioDir Common::RIGHT;key GetKeyStat…

【每日SQL打卡】​​​​​​​​​​​​​​​DAY 7丨大的国家【难度简单】

活动介绍&#xff1a; 「数据仓库技术交流群」已经正式启动每日SQL打卡&#xff0c;帮助大家扎实基础&#xff0c;努力工作之余&#xff0c;别忘了自我提升。 欢迎报名和邀请小伙伴参与&#xff0c;一个人可能走得很快&#xff0c;但一群人会走得很远。 &#x1f345;题目汇总(…

自动驾驶前沿报告!解密六大关键技术,全球人才分布

来源&#xff1a;智东西摘要&#xff1a;清华-中国工程院知识智能联合研究中心从技术、人才、应用和趋势的维度盘点自动驾驶的发展。从传统车企到新造车势力&#xff0c;再到互联网大佬&#xff0c;都在加注自动驾驶。自动驾驶既指向了更高效安全的交通运营系统&#xff0c;也意…

【每日SQL打卡】​​​​​​​​​​​​​​​DAY 7丨好友申请 I :总体通过率【难度简单】

活动介绍&#xff1a; 「数据仓库技术交流群」已经正式启动每日SQL打卡&#xff0c;帮助大家扎实基础&#xff0c;努力工作之余&#xff0c;别忘了自我提升。 欢迎报名和邀请小伙伴参与&#xff0c;一个人可能走得很快&#xff0c;但一群人会走得很远。 &#x1f345;题目汇总(…

边缘计算技术发展与对策研究

来源&#xff1a;5G作者&#xff1a;洪学海&#xff0c;中国科学院计算技术研究所&#xff0c;中国科学院计算机网络信息中心&#xff0c;研究员&#xff1b;汪洋&#xff0c;中国科学院计算机网络信息中心。未来智能实验室是人工智能学家与科学院相关机构联合成立的人工智能&a…

【每日SQL打卡】​​​​​​​​​​​​​​​DAY 7丨字节面试真题【难度困难】

活动介绍&#xff1a; 「数据仓库技术交流群」已经正式启动每日SQL打卡&#xff0c;帮助大家扎实基础&#xff0c;努力工作之余&#xff0c;别忘了自我提升。 欢迎报名和邀请小伙伴参与&#xff0c;一个人可能走得很快&#xff0c;但一群人会走得很远。 &#x1f345;题目汇总(…

发布 | 2018年中美智慧城市行业研究系列报告

来源&#xff1a;桥域咨询报告链接:https://pan.baidu.com/s/1fGrtzH0nLsldDvpE04DY6A 密码:q9q2未来智能实验室是人工智能学家与科学院相关机构联合成立的人工智能&#xff0c;互联网和脑科学交叉研究机构。未来智能实验室的主要工作包括&#xff1a;建立AI智能系统智商评测体…

【每日SQL打卡】​​​​​​​​​​​​​​​DAY 8丨判断三角形【难度简单】

活动介绍&#xff1a; 「数据仓库技术交流群」已经正式启动每日SQL打卡&#xff0c;帮助大家扎实基础&#xff0c;努力工作之余&#xff0c;别忘了自我提升。 欢迎报名和邀请小伙伴参与&#xff0c;一个人可能走得很快&#xff0c;但一群人会走得很远。 &#x1f345;题目汇总(…

【每日SQL打卡】​​​​​​​​​​​​​​​DAY 8丨平面上的最近距离【难度中等】

活动介绍&#xff1a; 「数据仓库技术交流群」已经正式启动每日SQL打卡&#xff0c;帮助大家扎实基础&#xff0c;努力工作之余&#xff0c;别忘了自我提升。 欢迎报名和邀请小伙伴参与&#xff0c;一个人可能走得很快&#xff0c;但一群人会走得很远。 &#x1f345;题目汇总(…

python实现统计你一共写了多少行代码

程序员要保证一定的代码量就必须勤奋的敲代码&#xff0c;但怎么知道自己一共写了多少代码呢&#xff0c;笔者用python写了个简单的脚本&#xff0c;遍历所有的.java,.cpp,.c文件的行数&#xff0c;但是正如大家所知&#xff0c;java生成了许多代码&#xff0c;所以有许多水分&…

工业机器人:四大家族垄断全球市场

来源&#xff1a;广发证券在世界工业机器人业界中&#xff0c;以瑞士的ABB、德国的库卡、日本的发那科和安川电机最为著名&#xff0c;并称工业机器人四大家族。全球机器人市场中&#xff0c;四大家族一直占据着重要位置&#xff0c;总市场份额一度超过50%以上。2015年以来由于…

【每日SQL打卡】​​​​​​​​​​​​​​​DAY 9丨平均工资:部门与公司比较【难度困难】

活动介绍&#xff1a; 「数据仓库技术交流群」已经正式启动每日SQL打卡&#xff0c;帮助大家扎实基础&#xff0c;努力工作之余&#xff0c;别忘了自我提升。 欢迎报名和邀请小伙伴参与&#xff0c;一个人可能走得很快&#xff0c;但一群人会走得很远。 &#x1f345;题目汇总(…

深度|全面了解一下这个世界上最奇葩的公司:Google!

来源&#xff1a;轮回的刻度2015年8月11日&#xff0c;Google公司架构调整的资讯与分析刷遍了朋友圈。这些数不胜数的文章&#xff0c;几乎都是这样这样一种基调&#xff1a;Google好像做了一件很重大的事情&#xff0c;但是谁也不清楚它为什么这么做。这个问题也困扰着我&…

【每日SQL打卡】​​​​​​​​​​​​​​​DAY 9丨有趣的电影【难度简单】

活动介绍&#xff1a; 「数据仓库技术交流群」已经正式启动每日SQL打卡&#xff0c;帮助大家扎实基础&#xff0c;努力工作之余&#xff0c;别忘了自我提升。 欢迎报名和邀请小伙伴参与&#xff0c;一个人可能走得很快&#xff0c;但一群人会走得很远。 &#x1f345;题目汇总(…

一文看懂机器人技术的发展史

来源&#xff1a;传感器技术机器人技术是综合了计算机、控制论、机构学、信息和传感技术、人工智能、仿生学等多学科而形成的高新技术&#xff0c;是当代研究十分活跃&#xff0c;应用日益广泛的领域。机器人应用情况&#xff0c;是一个国家工业自动化水平的重要标志。机器人并…

python实现简单爬虫抓取图片

最近在学习python,正如大家所知&#xff0c;python在网络爬虫方面有着广泛的应用&#xff0c;下面是一个利用python程序抓取网络图片的简单程序&#xff0c;可以批量下载一个网站更新的图片&#xff0c;其中使用了代理IP的技术。 import urllib.request import os import rand…