直接上代码

在初始化方法中添加图片:

bool BackGroundLayer::init()
{ frameCache=CCSpriteFrameCache::sharedSpriteFrameCache(); CCSize visibleSize = CCDirector::sharedDirector()->getVisibleSize(); bgCell1=CCSprite::createWithSpriteFrame(frameCache->spriteFrameByName("bgCell.png"));
bgSprintArr = CCArray::create();
bgSprintArr->retain(); bgSignArr=CCArray::create();
bgSignArr->retain(); CCSize sprintSize = bgCell1->getContentSize();
bgCell1->setAnchorPoint(ccp(,));
bgCell1->setPosition(ccp(,));
this->addChild(bgCell1);
bgSprintArr->addObject(bgCell1); int flipCount=visibleSize.width/sprintSize.width+;//多加一张图片用来滚动替换 for(int i=;i<flipCount;i++)
{
bgCell2 = CCSprite::createWithSpriteFrame(frameCache->spriteFrameByName("bgCell.png"));
bgCell2->setAnchorPoint(ccp(,));
bgCell2->setPosition(ccp(sprintSize.width*(i+)-(+i),));
if(i%==) //偶数
{
bgCell2->setFlipX(true);
}
this->addChild(bgCell2);
bgSprintArr->addObject(bgCell2);
}
return true;
}

在界面刷新方法里处理:

void RunBackGroundLayer::rollBg(float delta)
{
//CCSize mapSize = bgCell1->getContentSize();
//本次需要滚动的像素数
float moveX =delta/(1.0/60.0); CCSize visibleSize = CCDirector::sharedDirector()->getVisibleSize();
CCObject* obj=NULL;
CCSprite* bgCellTmp=NULL;
CCSize sprintSize = bgCell1->getContentSize();
//滚动和切换背景图片
CCARRAY_FOREACH(bgSprintArr,obj){
bgCellTmp=(CCSprite*)obj;
float moveXTo = bgCellTmp->getPositionX()-moveX;
bgCellTmp->setPositionX(moveXTo);
if(bgCellTmp->getPositionX()<-sprintSize.width)
{
bgCellTmp->setPositionX((bgSprintArr->count()-1)*sprintSize.width-(bgSprintArr->count()+1));
if(bgSprintArr->count()%2!=0)
{
if(bgCellTmp->isFlipX())
{
bgCellTmp->setFlipX(false);
}
else
{
bgCellTmp->setFlipX(true);
}
}
}
} }

完美实现无缝拼接滚动.

cocos2dx 背景用小尺寸图片滚动填充的方法的更多相关文章

  1. 百度小程序-图片画廊-使用previewImage方法实现

    .swan <!-- 轮播图 S--> <view class="swiper-box"> <swiper style='height:{{swipe ...

  2. css 如何让背景图片拉伸填充避免重复显示

    如何让背景图片拉伸填充,这个问题听起来似乎很简单.但是很遗憾的告诉大家.不是我们想的那么简单. 比如一个容器(body,div,span)中设定一个背景.这个背景的长宽值在css2.1之前是不能被修改 ...

  3. 微信小程序--图片相关问题合辑

    图片上传相关文章 微信小程序多张图片上传功能 微信小程序开发(二)图片上传 微信小程序上传一或多张图片 微信小程序实现选择图片九宫格带预览 ETL:微信小程序之图片上传 微信小程序wx.preview ...

  4. jquery图片滚动

    注:代码来自17sucai网,已去除部分冗余代码,只保留图片效果 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional// ...

  5. Android高级图片滚动控件,编写3D版的图片轮播器

    转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/17482089 大家好,好久不见了,最近由于工作特别繁忙,已经有一个多月的时间没写博 ...

  6. 纯css实现div中未知尺寸图片的垂直居中

    1.淘宝的方法 在曾经的"淘宝UED招聘"中有这样一道题目: “使用纯CSS实现未知尺寸的图片(但高宽都小于200px)在200px的正方形容器中水平和垂直居中.” 当然出题并不是 ...

  7. 【Android开发学习46】Android平台切割PNG图片成小png图片

    功能描写叙述: 分解 assets 文件夹文件下的 PNG 图片成 各个小尺寸 PNG 图片 . 主函数运行: // 创建文件夹, 用来保存分解出来的图片 createPath("/sdca ...

  8. jQuery全能图片滚动插件

    插件开发背景 随着前端开发领域越来越受到重视,前端开发也变得越来越火热.各种优秀的前端组件层出不穷.尤其是jQuery插件,很多前端组件都是基于jQuery开开发的. 图片滚动是前端开发中可以说是非常 ...

  9. 求帮忙解决封装jquery图片滚动问题

    今天用jquery封装了点击图片滚动,但是发现在屏幕自适应时,图片停在的位置会随着屏幕大小而错位(我引入了pocketgrid.css响应式文件,但没办法去那边修改onsize事件...),求大神.. ...

随机推荐

  1. Python学习之eventlet.greenpool

    该模块提供对 greenthread 池的支持. greenthread 池提供了一定数量的备用 greenthread ,有效限制了孵化 greenthread 过多导致的内存不足,当池子中没有足够 ...

  2. [算法] 快速排序 Quick Sort

    快速排序(Quick Sort)使用分治法策略. 它的基本思想是:选择一个基准数,通过一趟排序将要排序的数据分割成独立的两部分:其中一部分的所有数据都比另外一部分的所有数据都要小.然后,再按此方法对这 ...

  3. [Hive - LanguageManual] Create/Drop/Alter -View、 Index 、 Function

    Create/Drop/Alter View Create View Drop View Alter View Properties Alter View As Select Version info ...

  4. 通过源码学Java基础:InputStream、OutputStream、FileInputStream和FileOutputStream

    1. InputStream 1.1 说明 InputStream是一个抽象类,具体来讲: This abstract class is the superclass of all classes r ...

  5. codeforces 630R Game

    R. Game time limit per test 0.5 seconds memory limit per test 64 megabytes input standard input outp ...

  6. [iOS UI进阶 - 6.2] 核心动画CoreAnimation 练习代码

    A.基本用法 1.CABasicAnimation // // ViewController.m // CoreAnimationTest // // Created by hellovoidworl ...

  7. HDU 3666 THE MATRIX PROBLEM (差分约束)

    题意:给定一个最大400*400的矩阵,每次操作可以将某一行或某一列乘上一个数,问能否通过这样的操作使得矩阵内的每个数都在[L,R]的区间内. 析:再把题意说明白一点就是是否存在ai,bj,使得l&l ...

  8. CodeForces 548B Mike and Fun (模拟)

    题意:给定一个n*m的矩阵,都是01矩阵,然后每次一个询问,改变一个格的值,然后问你最大有数是多少. 析:就是按他说的模拟,要预处理,只要把每行的最大值记下来,当改变时,再更新这一行的最大值. 代码如 ...

  9. java.lang.OutOfMemory总结分析

    OOM浅析 相信有一定java开发经验的人或多或少都会遇到OutOfMemoryError的问题,这个问题曾困扰了我很长时间,随着解决各类问题经验的积累以及对问题根源的探索,终于有了一个比较深入的认识 ...

  10. spring事务注解

    @Transactional只能被应用到public方法上, 对于其它非public的方法,如果标记了@Transactional也不会报错,但方法没有事务功能. Spring使用声明式事务处理,默认 ...