【cocos2d-x 手游研发小技巧 循环无限滚动的登陆背景】

CocosCreator之翻页容器(PageView)和滚动容器(ScrollView)的滚动滑动事件处理(一) 前言:有的时候,我们需要一个既能翻页又能上下滑动、列表里的item还可以点击的界面,这时候就会遇到能滚动列表和滑动翻页的矛盾,以下为简单的处理方法。 一、在pageView里面的页面里面添加ScrollView: 为了方便区分,图中白色的背景是pageView的,说粉不粉说红又不红的颜色,是翻页容器page_1的背景色,蓝色的是ScrollView的背景色,列表里面的item的背景色为白色(下边... 阅读详情

原创文章,转载请附上链接:http://www.cnblogs.com/zisou/p/cocos2d-xARPG6.html

首先让大家知道我们想要实现的最终效果是什么样的?

看一个《逆天仙魔录》例子图:

就是一个连贯循环的背景图,如何让他无间隔的循环连贯跑起来,这里我们利用了定时器schedule方法;

定时器功能有无限循环的功能,那么我们运用这个功能主要是拿来循环刷帧的!

我们先准备一下效果图,如下:

这个背景图够长吧?而且它两边已经被我们的美工做成可循环连接的了,所以我们只需要程序把它循环起来。

具体代码如下:

制造背景的方法

复制代码
void LoginScenes::makebd(float num,int w,int tag)
{
    float x,y;
    CCPoint origin = CCDirector::sharedDirector()->getVisibleOrigin();
    CCSize size = CCDirector::sharedDirector()->getWinSize();
    x = size.width;
    y = size.height+origin.y;

    CCSprite *background=CCSprite::create(p_loginallbd);
    background->setAnchorPoint(CCPoint(0,0.5));
    background->setPosition(CCPoint(background->getContentSize().width*num+w,y/2));
    this->addChild(background,tag,tag);
}
复制代码


循环背景的方法

复制代码
void LoginScenes::movebd(float times)
{
    float x,y;
    CCPoint origin = CCDirector::sharedDirector()->getVisibleOrigin();
    CCSize size = CCDirector::sharedDirector()->getWinSize();
    x = size.width;
    y = size.height+origin.y;

    CCNode *bg1=CCNode::getChildByTag(99);
    CCSprite *sp1=(CCSprite*)bg1;

    CCNode *bg2=CCNode::getChildByTag(98);
    CCSprite *sp2=(CCSprite*)bg2;
    sp1->setPosition(CCPoint(sp1->getPositionX()-0.5,sp1->getPositionY()));
    sp2->setPosition(CCPoint(sp2->getPositionX()-0.5,sp2->getPositionY()));
    if(sp1->getPositionX()<=-sp1->getContentSize().width)
    {
        sp1->setPosition(CCPoint(sp1->getContentSize().width,y/2));
    }
    if(sp2->getPositionX()<=-sp2->getContentSize().width)
    {
        sp2->setPosition(CCPoint(sp2->getContentSize().width,y/2));
    }
}
复制代码


ok,以上两个函数就能完成,就差最后一句话了就搞定了:

this->schedule(schedule_selector(LoginScenes::movebd)); 


然后我们看一下效果:

 


cocos creator 无缝循环滚动道具 教程 scroll 第一步,先把布局弄好 把要滚动的图片都拖到scroll下 第二步,在scroll节点里添加Mask组件,辨率设为300*500, 这个分辨率你们可以随意改变 在资源管理器里新建一个scroll.js的组件,再把组件挂到scroll节点上 下面是scroll.js的代码部份 cc.Class({ extends: cc.Component, properties: { }, onLoad(){ this.allItem = []; //道具的列. 阅读详情

相关推荐

悟空识字Cocos

悟空识字Cocos2dx游戏源代码,

无限循环PageView列表

源码KIPageView,UITableView 很强大,可是只能竖向滚动;UICollectionView 可以解决各种布局难题,但是稍显复杂,对于一些简单的需求,有点杀鸡用牛刀的感觉。 在 iOS6 以前,还没有 UICollectionView,为了实现横向滚动的 UITableView,只有自己动手写组件。为了达到和 UITableView 差不多的效果,就得先弄清其内部实现机制是怎么回事。 在渲染 View 的时候,是很耗系统资源的,如果创建大量的 View, 系统运行将变得异常缓慢,甚至导致内存耗尽。但是,在实际应用中,我们难免会遇到大量的数据需要显示,如果每显示一个数据,我们都创建一个 View,那应用程序的体验将相当糟糕。所以 Apple 为 iOS 开发者提供了 UITableView,Google 为 Android 开发者提供了 ListView。 简单来讲,UITableView 采用复用机制,其只会显示其可见区域内的 UITableViewCell。我们在滑动的过程中,当超出 UITableView 可见区域的 Cell,将会从 UITableView 中移除,并加入回收池中以作复用。当 UITableView 需要显示新的 Cell,会先从回收池中查找是否有相应的 Cell 可以重用(通过 dequeueReusableCellWithIdentifier:)。如果有,则直接将其重新显示;如果没有,则创建新的 Cell。这样一来,就可以避免因创建过多的 View,导致内存耗尽的尴尬情况。 了解了其内部的运行原理,我们也可以实现一个自己的 UITableView。 很常见的一个应用场景——显示图片:如果显示一张图片,我们用一个 UIImageView 足矣,如果要显示多张图片,并且可以左右滚动,最简单的办法是用一个 UIScrollView 包含多个 UIImageView, 但是这样带来的后果则是,如果图片数据量较大,那这个程序根本没有办法正常使用。如果我们还需要实现无限循环滚动,那这个解决方案肯定是不行的。所以这时候,就得我们自己实现一个 UITableView。 最开始,我写了一个组件叫 KIFlowView,实现了上面讲的需求,但是都是 iOS5 时代的产物了,难免过于陈旧。在后续的工作中也发现,类似的需求其实挺多的,比如左右滑动的 View,如网易新闻客户端,可以左右滑动,在不同的新闻栏目之间进行切换;有时候我们也需要实现一些 Tab,如果 Tab 的项目比较多,也需要考虑复用的问题,所以决定重新写一个增强组件,作为其替代品,所以就产生了 KIPageView。 测试环境:Xcode 6.2,iOS 6.0 以上

Cocos2d-x横版动作手游完整源码Source

Cocos2d-x横版动作手游完整源码Source

cocos2d-x 手游研发小技巧(2)循环无限滚动登陆背景

原创文章,转载请附上链接:http://www.cnblogs.com/zisou/p/cocos2d-xARPG6.html 首先让大家知道我们想要实现的最终效果是什么样的? 看一个《逆天仙魔录》例子图: 就是一个连贯循环背景图,如何让他无间隔的循环连贯跑起来,这里我们利用了定时器schedule方法; 定时器功能有无限循环的功能,那么我们运用这个功能主要是拿来循环刷帧的! 我们...

weixin_34418883的博客 205

cocos creator 2.4.5 2D RPG 无限滚动背景实现

要点: 场景默认自带一个Camera,渲染场景内所有的物体 Camea节点可以看做是一个空节点下挂接一个Camea组件,所以本身不可见 每个场景都可以有多个Camera,通过关联组名来分组渲染 多个Camera的渲染层级符合节点树规则,先按Camera节点的层级分优先级,越下面的Camera,其关联的组越后渲染;同一Camera分组下的节点,越下面的节点越后渲染。越后渲染的节点看起来越接近顶层。 案例 Camera 实践:无限视差滚动地图实现 一、Camer

LANGZI7758521的专栏 2279

CocosCreator重复滚动列表

CocosCreator重复滚动列表

m0_37609239的博客 1174

cocos2dx lua PageView循环滑动及pageView的scrollToPage()偏移问题

1、引言 2、问题分析 3、代码 4、效果及问题 5、解决办法(scrollToPage()偏移问题) 1、引言   项目中用到一个展示Vip等级说明的需求,要做到类似翻滚一页展示一页的详情,可以无限滑动。这时候,下意识想到可以用pageView。这次想着一次做个通用的,以后需要直接拿来套用就好! 2、问题分析   我们周围常见的广告很多都是这样的,很多还是自动翻...

对酒当歌﹏✍ 6370

cocos2d-x 手游研发----目录】

感谢大家一直支持我写这样一系列的博客,从中我自己也获益良多,cocos2d-x这样一款非常棒的引擎,是值得我们去学习和分享的,谈到分享,那我就把这套写了差不多一两个月的框架给大家开源下载,写的很一般,当然由于一个人写也有一些BUG和待优化的地方,我觉得开源的意义希望学到更多,改进更多,之前我发了一份android JAVA原生态写的源码,在我的群里和博客里面有云盘下载地址; 这套框架只用了coc...

weixin_30416497的博客 63

Cocos无限滚动背景

无限滚动背景

weixin_42581036的博客 551

CocosCreator:背景滚动背景循环滚动

CocosCretor版本3.2.1。制作游戏背景循环滚动

weixin_39114763的博客 806

cocosCreator ScrollView 纵向滚动列表无限循环刷新

纵向滚动列表无限刷新,横向的稍微修改即可。原理相同。 cc.Class({ extends: cc.Component, properties: { itemPref:{ type: cc.Prefab, default: null, }, mask:{ ...

twicetwice的博客 3531

【CocosCreator入门】CocosCreator组件 | PageView(页面视图)组件

Cocos Creator 是一款流行的游戏开发引擎,具有丰富的组件和工具,其中的PageView组件是一种用于实现分页视图效果的重要组件。它可以让我们在游戏中实现各种分页视图效果,例如引导页、轮播图等。

看世界,也找自己 4691

cocos creator实现图片的循环滚动效果

首先在一个cocos creator上创建一个节点,比如说是bg1,bg2它们分别代表同样的图片要实现循环滚动效果,需要做的是两张图片具有相同的移动速度,然后到达临界条件的时候将第一幅图进行重置位置我在bg1上绑定脚本BackGround1.js在BackGround1.js中设置相关属性//将全局变量加载进来 cc.Class({ extends: cc.Component, ...

lck898989的博客 1万+

cocosd-x lua 轮播图实现

基于cocos2d的Layout的再次封装,实现的PaveView,可以循环切换。实现原理是模仿ScrollView,大概理解为有两个Layout,一个为容器可视层,可以显现区域,一个为容器内胆层,就是来装item的。然后控制内胆层的移动和位置来实现滑动。 1.在容器头部多加一个最后一页,在尾部多加一个第一页; 2.当滑动到index=6时,将内胆位置设置到index=2的位置; 3.当滑动到index=2时,将内胆位置设置到index=5的位置; 4.index表示为item在pageView里的页码,r

fangzhuozhen的博客 2100
上一篇: cocos2dx刮奖效果实现
下一篇: 【cocos2d-x 手游研发----怪物智能AI】
Sun___Shine
博客等级 码龄11年 61粉丝 45原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值