
| 声 明 本教程仅用于初学cocos2dx同学使用,内容由本人(孤狼)学习过程中笔记编写,本教程使用cocos2dx版本为2.1.4。本教程内容可以自由转载,但必须同时附带本声明,或注明出处。 gl.paea.cn版权所有。 |
Hello,大家好,欢迎回到“和屌丝一起学coco2dx”系列教程,上次我们一起用“CCprogressto”做了一个小红警,不知道大家做出来没有呢?是不是感觉自己有上升了一步呢?有人问我,有没有更快的学习方法,能让自己快点做出来游戏,这里呢我的意见是,没有一口吃出来的胖子,所以大家还是要一步一个阶梯,一步一个脚印的向上走,不要着急,慢慢的你会成功的。好了今天我们说下一个比较常见的背景 *** 作-“CCScrollVIEw”。
【一】:为啥学他
我们在玩游戏的时候,经常会看到可以拖动的背景,那么这个“CCScrollVIEw”呢,就是用来实现这个效果的。
【二】:函数
1.创建:
[1]:CCScrollVIEw::creater("滚动视图尺寸","滚动视图容器");
[2]:CCScrollVIEw::creater(); //默认视图尺寸为200*200
2. *** 作:
[1]:isDragging(); //判断用户是否在 *** 作
[2]:istouchmoved(); //判断用户是否在移动
[3]:isBounceable(); //是否开启d性效果
[4]:setContainer("CCNode对象"); //设置容器
[5]:setVIEwSize("CCSize类型"); //设置视图尺寸
[6]:setBounceable(); //设置d性效果
[7]:CCNode * getContainer(); //获取容器
[8]:CCSize getVIEwSize(); //获取滚动视图的尺寸
[9]:virual voID scrollVIEwDIDScroll(); //有滚动时的响应函数
[10]:virual voID scrollVIEwDIDZoom(); //缩放时的响应函数
【三】:尺寸设置问题
创建这样的滚动视图,就是把很多精灵都排列在一个layer层里,然后用滚动视图来加载这个layer,最后显示这个滚动视图。我们可以想到就是把图片拼合成一个长条,然后滑动来显示。比如这样:
我们看到我们拼合出来的layer长度是3倍屏宽,所以我们要把我们的滚动视图设置为1倍屏宽,这样我们才能完整的滚完3张图,如果你把滚动视图也设置为3倍,那么就会停留在第一张图那里滚动不了了,因为系统检测到,已经滚完了。懂了吧。
【四】:示例
1.创建项目ScrollvIEwdemo(真想省了这个步骤)。
2.准备一些图片,这里我给大家提供了一些。
ScrollvIEwdemo.h
1.包含文件 “cocos-ext.h” #include "cocos-ext.h"
2.引用命名空间 extensionusing namespace cocos2d::extension;
3.继承CCScrollVIEwDelegatepublic CCScrollVIEwDelegate
4.写好2个响应函数
virtual voID scrollVIEwDIDScroll(CCScrollVIEw * vIEw);
virtual voID scrollVIEwDIDZoom(CCScrollVIEw * vIEw);
ScrollvIEwdemo.cpp
1.载入3张图片
3.在初始化里写
CCSize mysize=CCDirector::sharedDirector()->getWinSize();
//先创建个层
cclayer * scrollvIEwlayer=cclayer::create();
//再创建3个精灵
CCSprite * sp1=CCSprite::create("1.jpg");
//这里注意一下,第一个精灵的位置mysize.wIDth*0.5
sp1->setposition(ccp(mysize.wIDth*(1*2-1)*0.5,mysize.height/2));
CCSprite * sp2=CCSprite::create("2.jpg");
//这里注意一下,第二个精灵的位置mysize.wIDth*1.5
sp2->setposition(ccp(mysize.wIDth*(2*2-1)*0.5,242)">CCSprite * sp3=CCSprite::create("3.jpg");
//这里注意一下,第三个精灵的位置mysize.wIDth*2.5
sp3->setposition(ccp(mysize.wIDth*(3*2-1)*0.5,80)">//把3个精灵都加载到容器中去(scrollvIEwlayer)
scrollvIEwlayer->addChild(sp1);
scrollvIEwlayer->addChild(sp2);
scrollvIEwlayer->addChild(sp3);
//设置容器大小
scrollvIEwlayer->setContentSize(CCSizeMake(mysize.wIDth*3,mysize.height));
//创建滚动视图
CCScrollVIEw * myscroll=CCScrollVIEw::create(CCSizeMake(mysize.wIDth,mysize.height),scrollvIEwlayer);
//这里我们关闭d性
myscroll->setBounceable(false);
//这里注意一下,我们添加的是滚动视图,不是layer
this->addChild(myscroll);
4.实现2个响应函数(我这里就不 *** 作了)
voID ScrollvIEwdemo::scrollVIEwDIDScroll(CCScrollVIEw * vIEw){
//一些 *** 作
}
voID ScrollvIEwdemo::scrollVIEwDIDZoom(CCScrollVIEw * vIEw){
好了以后我们就开始来实验一下吧。
本节DEMO下载
以上是内存溢出为你收集整理的cocos2dx-CCScrollView的制作全部内容,希望文章能够帮你解决cocos2dx-CCScrollView的制作所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)