cocos2dx 背景用小尺寸图片滚动填充的方法

直接上代码

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

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(0,0));bgCell1->setPosition(ccp(0,0));this->addChild(bgCell1);bgSprintArr->addObject(bgCell1);int flipCount=visibleSize.width/sprintSize.width+1;//多加一张图片用来滚动替换for(int i=0;i<flipCount;i++){bgCell2 = CCSprite::createWithSpriteFrame(frameCache->spriteFrameByName("bgCell.png"));bgCell2->setAnchorPoint(ccp(0,0));bgCell2->setPosition(ccp(sprintSize.width*(i+1)-(1+i),0));if(i%2==0)    //偶数
        {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);}}}}	}

 完美实现无缝拼接滚动.

转载于:https://www.cnblogs.com/taoys/p/3532215.html

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

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

相关文章

高级数据库,建库,建表,建约束

use master --建库&#xff0c;dbtime&#xff0c;名称time create database dbtime on primary (name Time.mdf,fileName E:\Time.mdf,size 4mb,maxsize 20mb,filegrowth 2mb ) log on (name Time_log.ldf,filename E:\Time_log.ldf,size 4mb,maxsize 20mb,filegrowth…

1054. 求平均值 (20)

本题的基本要求非常简单&#xff1a;给定N个实数&#xff0c;计算它们的平均值。但复杂的是有些输入数据可能是非法的。一个“合法”的输入是[-1000&#xff0c;1000]区间内的实数&#xff0c;并且最多精确到小数点后2位。当你计算平均值的时候&#xff0c;不能把那些非法的数据…

最大子段和c(c语言实现)

1&#xff0c;题目 2&#xff0c;各种算法 暴力解决&#xff0c;就是所有的情况都遍历一遍&#xff0c;然后说&#xff0c;我找到最牛逼的啦 int MaxSubseqSum1(int A[], int N, int* pidxStart, int* pidxEnd) { int sum A[0], tempSum 0;int i, j, k;*pidxStart 0, *pid…

sql语法,未完待续

MS SQLSEVER 是结构化查询语言&#xff0c;标准化查询语言&#xff0c;面向自然语言&#xff0c;编程语言。 做为编程语言&#xff0c;对编程却没卵用&#xff0c;是辅助查询用的。它没类库。 做为编程语言肯定有语法。 变量 declare i int set i 1 print i–消息 select i --…

2021-07-14

pat甲级1097 我还用数组下标从1到n的方式遍历链表&#xff0c;真菜。 csdn上有的博客的题解对输入排序了&#xff0c;有的没排序。我还是通过参考别人的代码过了。 下面代码的思路是一个数组&#xff0c;通过节点的标记值来分离留下的和删除的&#xff0c;我的想法是两个数组分…

1007. Maximum Subsequence Sum (25)

Sample Input: 10 -10 1 2 3 4 -5 -23 3 7 -21 Sample Output: 10 1 4 错误代码如下&#xff1a; #include <stdio.h>int MaxSubseqSum4(int A[], int N, int* pstart, int* pend) {int i 0;int tempStart; //记录最大子段和位置int thisSum 0, sum 0;tempStart …

关于 ASP.NET MVC 中的视图生成

在 ASP.NET MVC 中&#xff0c;我们将前端的呈现划分为三个独立的部分来实现&#xff0c;Controller 用来控制用户的操作&#xff0c;View 用来控制呈现的内容&#xff0c;Model 用来表示处理的数据。 从控制器到视图 通常&#xff0c;在 Controller 中&#xff0c;我们定义多个…

2021-07-21

leetcode113 看了很多别人的题解&#xff0c;还是感觉没太懂&#xff0c;主要是因为dfs和bfs没彻底会用&#xff0c;还是得找专门的题练练。 得早睡早起呀&#xff0c;假期学习真就靠自律呀。 *** Definition for a binary tree node.* struct TreeNode {* int val;* …

实验项目 3-4:一元多项式的乘法与加法运算

代码如下&#xff1a; /*************************************************************************> File Name: AddPoly.c> Author: YueBo> Mail: yuebowhu163.com> Created Time: 2016年12月17日 星期六 13时00分35秒***************************************…

SQL自定义完整性

自定义完整性。&#xff08;事务&#xff09; 事务的四个特性&#xff1a; 原子性 : 事务中SQL语句是一个整体, 不可分离,要么都执行、要么都不执行 一致性 : 事务前后数据保持一致 隔离性 : 事务中不允许其他事务介入 永久性 : 事务执行之后对数据表的修改是永久的 Expectatio…

伪类和伪元素

选择第一个子元素&#xff1a;first-child li:first-child{text-decoration: underline;}li:last-child{color: red;}p:first-child{font-style: italic;} <p>xiaoren</p><ul><li>Insert Key</li><li>Turn Key<strong>clockwise<…

T-SQL存储过程

存储过程。即T-SQL里的方法。类似封装的思想。 基本语法如下&#xff1a; create proc 方法名 name 默认值可不写&#xff0c;传入的参数 数据类型 , p变量名 数据类型 output (返回值) asSql代码 go--调用上面方法 declare variable 和p一样的类型 exec 方法名 传值 , var…

Extjs4开发中的一些问题

1. 子frame刷新的问题 一般在jsp里面&#xff0c;要实现界面跳转&#xff0c;有很多方法&#xff0c;最典型的就是window.location.href"href",但是在嵌套有iframe框架的页面布局&#xff0c;使用上述语句&#xff0c;只会使iframe本身实现跳转&#xff0c;如果遇到…

TSQL索引与视图

创建视图 简化sql 代码&#xff0c;还有&#xff0c;给予权限&#xff08;只能查指定的列&#xff09; create view 视图名 as sql代码&#xff0c;不要有同名列&#xff08;只能一句sql代码&#xff09; go select * from 视图名 &#xff08;最好不要用视图做更改操作&#…

jacob 实现Office Word文件格式转换

关于jacob用法&#xff0c;百度一下就会发现几乎都是复制2004年一个代码&#xff0c;那段代码实现的是从一个目录读取所有doc文件&#xff0c;然后把它转html格式。 为了便习学习和使用&#xff0c;我把代码看懂后精简了一下&#xff0c;得出不少新结论&#xff0c;拿出来和大家…

2021-07-22

leetcode547 第一次做这种题&#xff0c;有点生&#xff0c;借鉴 class Solution { public:void dfs(vector<vector<int>>& isConnected,vector<int>&isvisited,int i){for(int j0;j!isConnected.size();j){if(isConnected[i][j]1&&isvisit…

树的同构

输入样例1&#xff08;对应图1&#xff09;&#xff1a;8A 1 2B 3 4C 5 -D - -E 6 -G 7 -F - -H - -8G - 4B 7 6F - -A 5 1H - -C 0 -D - -E 2 -输出样例1:Yes输入样例2&#xff08;对应图2&#xff09;&#xff1a;8B 5 7F - -A 0 3C 6 -H - -D - -G 4 -E 1 -8D 6 -B 5 -E - -…