怎样用cocos2d-js实现flash人物走动素材在地图上走动


winSize = cc.director.getWinSize();
if(touches.length & 1)
// 多点进行缩放
// 得到当前两触摸点
point1 = touches[0].getLocation();
var point2 = touches[1].getLocation();
// 计算两点之间得距离
var x1 = point1.x - point2.x;
var y1 = point1.y - point2.y;
var currDistance = Math.pow((x1*x1+y1*y1),0.5);//cc.pDistance(point1,point2); //Math.sqrt(x1*x1+y1*y1);//point1.distance(point2);
// 计算两触摸点上一时刻之间得距离
var x11 = touches[0].getPreviousLocation().x -touches[1].getPreviousLocation().x;
var y11 = touches[0].getPreviousLocation().y - touches[1].getPreviousLocation().y;
var prevDistance = Math.pow((x11*x11+y11*y11),0.5);//cc.pDistance(touches[0].getPreviousLocation(),touches[1].getPreviousLocation());//Math.sqrt(x11*x11+y11*y11);//touches[0].getPreviousLocation().distance(touches[1].getPreviousLocation());
// 两触摸点与原点的差向量,pointVec1和pointVec2是相对于bgSprite的位置
var pointVec1 = cc.p(point1.x-e.getCurrentTarget().bgOrigin.x,point1.y-e.getCurrentTarget().bgOrigin.y);//cc.pSub(point1,e.getCurrentTarget().bgOrigin);
var pointVec2 = cc.p(point2.x-e.getCurrentTarget().bgOrigin.x,point2.y-e.getCurrentTarget().bgOrigin.y);//cc.pSub(point2,e.getCurrentTarget().bgOrigin);
// 两触摸点的相对中点
var relMidx = (pointVec1.x + pointVec2.x) / 2 ;
var relMidy = (pointVec1.y + pointVec2.y) / 2 ;
// 计算bgSprite的锚点
var anchorX = relMidx / e.getCurrentTarget().bgSprite.getBoundingBox().
var anchorY = relMidy / e.getCurrentTarget().bgSprite.getBoundingBox().
// 相对屏幕的中点
var absMidx = (point2.x + point1.x) / 2 ;
var absMidy = (point2.y + point1.y) / 2 ;
// 缩放时,为了避免出现空白的区域,需要做以下的边界处理。
// 当bgSprite快要进入到屏幕时,修改bgSprite的位置(既absMidx和absMidy)。
e.getCurrentTarget().bgOrigin.x & 0)
absMidx -= e.getCurrentTarget().bgOrigin.x;
if( e.getCurrentTarget().x & -e.getCurrentTarget().bgSprite.getBoundingBox().width + winSize.width )
absMidx +=
-e.getCurrentTarget().bgSprite.getBoundingBox().width + winSize.width - e.getCurrentTarget().bgOrigin.x;
if( e.getCurrentTarget().bgOrigin.y & 0 )
absMidy -= e.getCurrentTarget().bgOrigin.y;
if( e.getCurrentTarget().bgOrigin.y & -e.getCurrentTarget().bgSprite.getBoundingBox().height + winSize.height )
absMidy +=
-e.getCurrentTarget().bgSprite.getBoundingBox().height + winSize.height - e.getCurrentTarget().bgOrigin.y;
// 重设bgSprite锚点和位置
e.getCurrentTarget().bgSprite.setAnchorPoint(cc.p(anchorX, anchorY));
e.getCurrentTarget().bgSprite.setPosition(cc.p(absMidx, absMidy));
// 根据两触摸点前后的距离计算缩放倍率
var scale = e.getCurrentTarget().bgSprite.getScale() * ( currDistance / prevDistance);
cc.log(&sacel ==== &+scale);
// 控制缩放倍率在1~4倍之间,最小倍率不能太小,不让背景将不能填充满整个屏幕。
scale = Math.min(4,Math.max(1, scale));
e.getCurrentTarget().bgSprite.setScale(scale);
// 更新原点位置
var pt1 = cc.p(absMidx, absMidy);
var pt2 = cc.p(e.getCurrentTarget().bgSprite.getBoundingBox().width * anchorX, e.getCurrentTarget().bgSprite.getBoundingBox().height * anchorY) ;
//e.getCurrentTarget().bgOrigin = cc.p(absMidx, absMidy) - cc.p(e.getCurrentTarget().bgSprite.getBoundingBox().width * anchorX, e.getCurrentTarget().bgSprite.getBoundingBox().height * anchorY) ;
e.getCurrentTarget().bgOrigin = cc.p(pt1.x-pt2.x,pt1.y-pt2.y);//cc.p(absMidx, absMidy) - cc.p(e.getCurrentTarget().bgSprite.getBoundingBox().width * anchorX, e.getCurrentTarget().bgSprite.getBoundingBox().height * anchorY) ;
else if(touches.length == 1)
// 单点进行移动
// 单点时,touches中只有一个Touch对象,所以通过touches[0]就可以得到触摸对象
var touch = touches[0];
// 计算滑动过程中的滑动增量
var diff = touch.getDelta();
// 得到当前bgSprite的位置
var currentPos = e.getCurrentTarget().bgSprite.getPosition();
// 得到滑动后bgSprite应该所在的位置
var pos = cc.pAdd(currentPos,diff);
// 得到此刻bgSprite的尺寸
var bgSpriteCurrSize = e.getCurrentTarget().bgSprite.getBoundingBox();
//边界控制,约束pos的位置
pos.x = Math.min(pos.x, bgSpriteCurrSize.width * e.getCurrentTarget().bgSprite.getAnchorPoint().x);
pos.x = Math.max(pos.x, -bgSpriteCurrSize.width + winSize.width + bgSpriteCurrSize.width * e.getCurrentTarget().bgSprite.getAnchorPoint().x);
pos.y = Math.min(pos.y, bgSpriteCurrSize.height * e.getCurrentTarget().bgSprite.getAnchorPoint().y);
pos.y = Math.max(pos.y, -bgSpriteCurrSize.height + winSize.height + bgSpriteCurrSize.height * e.getCurrentTarget().bgSprite.getAnchorPoint().y);
// 重设bgSprite位置
e.getCurrentTarget().bgSprite.setPosition(pos);
// 更新原点位置
//if( pos.x &= bgSpriteCurrSize.width * e.getCurrentTarget().bgSprite.getAnchorPoint().x
|| pos.x &= -bgSpriteCurrSize.width + winSize.width + bgSpriteCurrSize.width * e.getCurrentTarget().bgSprite.getAnchorPoint().x)
diff.x = 0;
//if( pos.y &= bgSpriteCurrSize.height * e.getCurrentTarget().bgSprite.getAnchorPoint().y
|| pos.y &= -bgSpriteCurrSize.height + winSize.height + bgSpriteCurrSize.height * e.getCurrentTarget().bgSprite.getAnchorPoint().y)
diff.y = 0;
//e.getCurrentTarget().bgOrigin +=
var off = cc.pSub(pos,currentPos);
//e.getCurrentTarget().bgOrigin +=
e.getCurrentTarget().bgOrigin = cc.pAdd(cc.p(e.getCurrentTarget().bgOrigin.x,e.getCurrentTarget().bgOrigin.y),off);
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:10104次
排名:千里之外
原创:15篇
转载:24篇
(1)(2)(2)(6)(1)(3)(1)(22)(2)&&&&Dijkstra算法的Cocos2d-x3.2实现地图行走
&Dijkstra算法的Cocos2d-x3.2实现地图行走
Cocos2d-x 地图行走的实现。Cocos2d-x 3.2,VS2013环境。
若举报审核通过,可奖励20下载分
被举报人:
举报的资源分:
请选择类型
资源无法下载
资源无法使用
标题与实际内容不符
含有危害国家安全内容
含有反动色情等内容
含广告内容
版权问题,侵犯个人或公司的版权
*详细原因:
VIP下载&&免积分60元/年(1200次)
您可能还需要
Q.为什么我点的下载下不了,但积分却被扣了
A. 由于下载人数众多,下载服务器做了并发的限制。若发现下载不了,请稍后再试,多次下载是不会重复扣分的。
Q.我的积分不多了,如何获取积分?
A. 获得积分,详细见。
完成任务获取积分。
论坛可用分兑换下载积分。
第一次绑定手机,将获得5个C币,C币可。
关注并绑定CSDNID,送10个下载分
下载资源意味着您已经同意遵守以下协议
资源的所有权益归上传用户所有
未经权益所有人同意,不得将资源中的内容挪作商业或盈利用途
CSDN下载频道仅提供交流平台,并不能对任何下载资源负责
下载资源中如有侵权或不适当内容,
本站不保证本站提供的资源的准确性,安全性和完整性,同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
移动开发下载排行
您当前C币:1&&&可兑换 2 下载积分
兑换下载分:&
消耗C币:0&
立即兑换&&
兑换成功你当前的下载分为 。前去下载资源
你下载资源过于频繁,请输入验证码
如何快速获得积分?
你已经下载过该资源,再次下载不需要扣除积分
Dijkstra算法的Cocos2d-x3.2实现地图行走
所需积分:5
剩余积分:0
扫描微信二维码精彩活动、课程更新抢先知
VIP会员,免积分下载
会员到期时间:日
剩余下载次数:1000
Dijkstra算法的Cocos2d-x3.2实现地图行走
剩余次数:&&&&有效期截止到:
你还不是VIP会员VIP会员享免积分 . 专属通道极速下载
VIP下载次数已满VIP会员享免积分 . 专属通道极速下载,请继续开通VIP会员
你的VIP会员已过期VIP会员享免积分 . 专属通道极速下载,请继续开通VIP会员cocos2dx-js 用二维数组 做随机地图 求怎么做? - 开源中国社区
当前访客身份:游客 [
当前位置:
我只会铺满 铺满后不知道怎么让他随机!
---------------问题补充---------------
:急求 !还是我没有讲明白?
共有0个答案
更多开发者职位上
有什么技术问题吗?
对待玩很...的其它问题『 不要让任何事情成为你不去学习的理由!』
【iOS-Cocos2d游戏开发之十八】解决滚屏背景/拼接地图有黑边(缝隙)/图片缩放后模糊透明/图片不清晰【日补充】/动画播放出现毛边以及禁止游戏中自动锁屏问题!
本站文章均为
原创,转载务必在明显处注明:
转载自【黑米GameDev街区】 原文链接:
本章节主要为大家介绍在游戏开发过程中经常遇到的两个问题;
1. 解决滚屏背景或拼接地图有黑边!
对于游戏开发中,背景(游戏地图)是必要的元素之一,那么对于大部分游戏的背景都是动态,或者不断移动的;例如RPG中的背景随着人物、主角而移动,那么一般情况下背景都是由地图编辑器(图块)拼出来的,要不就是直接一整张大图去显示,在或者就是将一张大图进行裁减成N张,然后再进行拼接完成等等;
那么对于背景(地图)元素中存在的重复图块很少的话基本上就没有利用地图编辑器的必要了;在这里Himi不来介绍如何在cocos2d中使用地图编辑器做背景地图 ,而是介绍在cocos2d中制作滚动地图时利用拼接地图方式遇到的黑边问题;
如下图所示,背景是由3张图片拼接而成,如下3张图:
//将三张图拼成一张完整背景
CGSize screenSize =[[CCDirector sharedDirector]winSize];
CCSprite *bgTile1 =[CCSprite spriteWithFile:@"himi_01.png"];
bgTile1.position=ccp(bgTile1.contentSize.width*0.5,screenSize.height*0.5);
CCSprite *bgTile2 =[CCSprite spriteWithFile:@"himi_02.png"];
bgTile2.position=ccp(bgTile1.position.x+bgTile1.contentSize.width,bgTile1.position.y);
CCSprite *bgTile3 =[CCSprite spriteWithFile:@"himi_03.png"];
bgTile3.position=ccp(bgTile2.position.x+bgTile2.contentSize.width,bgTile2.position.y);
[self addChild:bgTile1 z:0 tag:11];
[self addChild:bgTile2 z:0 tag:22];
[self addChild:bgTile3 z:0 tag:33];
1234567891011
//将三张图拼成一张完整背景&& &&&&&&&&CGSize screenSize =[[CCDirector sharedDirector]winSize];&&&&&&&&&&CCSprite *bgTile1 =[CCSprite spriteWithFile:@"himi_01.png"];&&&&&&&&&&bgTile1.position=ccp(bgTile1.contentSize.width*0.5,screenSize.height*0.5);&&&&&&&&&&CCSprite *bgTile2 =[CCSprite spriteWithFile:@"himi_02.png"];&&&&&&&&&&bgTile2.position=ccp(bgTile1.position.x+bgTile1.contentSize.width,bgTile1.position.y);&&&&&&&&&&CCSprite *bgTile3 =[CCSprite spriteWithFile:@"himi_03.png"];&&&&&&&&&&bgTile3.position=ccp(bgTile2.position.x+bgTile2.contentSize.width,bgTile2.position.y);&&&&&&&&&&[self addChild:bgTile1 z:0 tag:11];&&&&&&&&&&[self addChild:bgTile2 z:0 tag:22];&&&&&&&&&&[self addChild:bgTile3 z:0 tag:33];
此时运行的截图如下:
从上图童鞋们就可以看到拼接有裂缝,那么接着让3个精灵从左向右不断的x轴+1进行移动,代码如下:
//----init函数中
//每0.1秒刷新函数move
[self schedule:@selector(move) interval:0.1];
//move函数
-(void)move{
CCSprite *tempSprite =(CCSprite*)[self getChildByTag:11];
tempSprite.position=ccpAdd(tempSprite.position, ccp(1,0));
tempSprite =(CCSprite*)[self getChildByTag:22];
tempSprite.position=ccpAdd(tempSprite.position, ccp(1,0));
tempSprite =(CCSprite*)[self getChildByTag:33];
tempSprite.position=ccpAdd(tempSprite.position, ccp(1,0));
123456789101112
//----init函数中&& &&&&&& //每0.1秒刷新函数move&&&&&&&&&&[self schedule:@selector(move) interval:0.1];&&//move函数&&-(void)move{&&&&&&CCSprite *tempSprite =(CCSprite*)[self getChildByTag:11];&&&&&&tempSprite.position=ccpAdd(tempSprite.position, ccp(1,0));&&&&&&tempSprite =(CCSprite*)[self getChildByTag:22];&&&&&&tempSprite.position=ccpAdd(tempSprite.position, ccp(1,0));&&&&&&tempSprite =(CCSprite*)[self getChildByTag:33];&&&&&&tempSprite.position=ccpAdd(tempSprite.position, ccp(1,0));&&}
运行截图如下:
这时当移动到一定距离时候会发现刚才的缝隙消失了,是消失了,通过以上两张运行效果图可以说明:
在cocos2d中如图你使用拼接背景地图的方式去做的话,每处拼接处在移动时都会时不时的出现黑边(裂缝),至于如何解决我想童鞋们第一想法就是在裁图的时候多切出一像素的方法,第一张比如原来是100,故意裁出101,第二张绘制的时候X轴前一个像素…以此类推,还有些童鞋认为是美工的原因,可能在裁图的时候有透明像素的存在造成,当然美工裁图的不仔细确实是个不可排除的原因,但是最终解决的方案应该是将精灵设置贴图无锯齿的属性,这样就可以完美解决此问题,设置精灵贴图无锯齿方法如下:
[CCSprite.texture setAliasTexParameters];
[CCSprite.texture setAliasTexParameters];
我们将这句添加上之后再次运行,代码更改如下:
//将三张图拼成一张完整背景
CGSize screenSize =[[CCDirector sharedDirector]winSize];
CCSprite *bgTile1 =[CCSprite spriteWithFile:@"himi_01.png"];
bgTile1.position=ccp(bgTile1.contentSize.width*0.5,screenSize.height*0.5);
CCSprite *bgTile2 =[CCSprite spriteWithFile:@"himi_02.png"];
bgTile2.position=ccp(bgTile1.position.x+bgTile1.contentSize.width,bgTile1.position.y);
CCSprite *bgTile3 =[CCSprite spriteWithFile:@"himi_03.png"];
bgTile3.position=ccp(bgTile2.position.x+bgTile2.contentSize.width,bgTile2.position.y);
//让3个精灵都设置贴图无锯齿
[bgTile1.texture setAliasTexParameters];
[bgTile2.texture setAliasTexParameters];
[bgTile3.texture setAliasTexParameters];
[self addChild:bgTile1 z:0 tag:11];
[self addChild:bgTile2 z:0 tag:22];
[self addChild:bgTile3 z:0 tag:33];
123456789101112131415
//将三张图拼成一张完整背景&& CGSize screenSize =[[CCDirector sharedDirector]winSize];&&CCSprite *bgTile1 =[CCSprite spriteWithFile:@"himi_01.png"];&&bgTile1.position=ccp(bgTile1.contentSize.width*0.5,screenSize.height*0.5);&&CCSprite *bgTile2 =[CCSprite spriteWithFile:@"himi_02.png"];&&bgTile2.position=ccp(bgTile1.position.x+bgTile1.contentSize.width,bgTile1.position.y);&&CCSprite *bgTile3 =[CCSprite spriteWithFile:@"himi_03.png"];&&bgTile3.position=ccp(bgTile2.position.x+bgTile2.contentSize.width,bgTile2.position.y);&&//让3个精灵都设置贴图无锯齿&&[bgTile1.texture setAliasTexParameters];&&[bgTile2.texture setAliasTexParameters];&&[bgTile3.texture setAliasTexParameters];&&[self addChild:bgTile1 z:0 tag:11];&&[self addChild:bgTile2 z:0 tag:22];&&[self addChild:bgTile3 z:0 tag:33];
再次运行效果图如下:
OK,完美解决;
【日补充】:
对于裂缝、黑边、模糊、透明等问题,这里Himi再详细描述补充下:
1. 首先如果你使用TP(Texturepacker)进行的图片打包的话:
首先确定是否打包时,帧之间保证了&=1像素距离。
然后确定是否勾选了”premultply alhpa” 这一项(应该勾选)
最后确认你项目中是否设置了如下代码:
CCTexture2D::PVRImagesHavePremultipliedAlpha(true);
如上代码设置的作用是
2. 图片缩放后模糊透明问题
首先cocos2d/cocos2dx引擎中,默认的贴图设置了抗锯齿,如下函数:
setAntiAliasTexParameters()//设置抗锯齿 (但是会模糊透明)
那么缩放后的图片由于设置了抗锯齿会造成图片边缘模糊透明,所以对此的解决方式,我们单独处理缩放的图进行设置非抗锯齿,如下函数:
setAliasTexParameters() //设置非抗锯齿 (但是不抗锯齿)
3.图片感觉模糊不清晰
首先对于此问题的原因是:引擎默认使用的是透视投影模式,此模式的效果为近大远小的效果,所以远处的则模糊不清晰
所以我们如果想让整体所有贴图清晰,那么我们可以设置引擎为正交投影模式即可,如下代码设置:
CCDirector::sharedDirector()-&setProjection(kCCDirectorProjection2D);
如果还不行,宝贝们,你们赢了!只要以上方法都尝试过100%没问题的!!!!!!
2.下面介绍第二个问题:如何禁止手机自动锁屏的问题;
对于手机自动锁屏的问题一般都是在项目尾声的时候发现由于手机自动锁屏所带来的各种问题,例如,在cocos2d中我们调用暂停游戏的函数后,如果用户无操作,手机自动锁屏后,解锁再次进入游戏就会发现游戏不处于暂停了,(如果你有暂停界面的话,你将看到你暂停界面存在,而后面的游戏照常运行- -)
那么这里Himi给出在应用中禁止手机自动锁屏的代码,如下:
[[UIApplication sharedApplication] setIdleTimerDisabled:YES];
[[UIApplication sharedApplication] setIdleTimerDisabled:YES];
OK,本章介绍的知识点虽然很少解决的方法也很简单,但是也是游戏中最容易遇到的两个问题;
那么这里肯定会有不少童鞋认为本身一句代码的事情非写这么多进行说明,嗯 ,确实写的过于详细,但是Himi之所以写这么详细主要还是想让还没有遇到此类问题的童鞋清晰化此类问题出现的原因,这样能让更多童鞋减少以后遇到此问题的疑问~
微信扫一扫,打赏作者吧~
街区小告示
技术开发交流群
? 【Unreal Engine】
? 【React Native】
? 【Cocos Creator】
? 【Cocos2dx】
? 【C2dx_Lua】
总有你想找的
小广告先森
小广告先森cocos2d-x 学习
元旦假期结束,新年伊始,想必大家都还没从三天的假期里面恢复过来,在新年之初给大家带来的是自己做横板射击游戏里面的地图滚动封装方法,当然这里的地图滚动方法原理和之前很多的游戏的地图滚动原理相同,不同的是我做的横板射击游戏里面有近景,中景,远景等四种不同的zorder值的背景拼接起来,不同的背景有不同的滚动速度,这样让背景滚动看起来更加的逼真和好看,如果按照原始的方法做的话,需要写很多的代码,代码冗余量特别严重,针对这个问题我将地图滚动的方法封装起来,方便有碰到此类问题的读者,可以直接用来使用,也给大家提供一种比较好的解决方式。
首先分析需求,我们要实现四个背景层的滚动效果的话,基本思路,我们得先对一个背景层进行封装,然后将其循环复用,得到四个层或者是更多层(根据实际需要),一步一步来,我们先对一个层进行封装,创建一个层,首先思的是,创建这个背景层需要哪些参数,1. zorder &背景图的zorder 值,不同层背景有不同的zorder
&2. num &图片的数量 (近景,中景,远景绝大部分情况下有可能不只是一张图片,可能是多张图片的滚动,当然也要考虑只有一张图片滚的情况) 3. 速度 speed 关于速度,普通的横板射击游戏里面的背景图片滚动一般遵循的是 zorder越大(也就是我们最先看到的背景图片),滚动速度相较于其他层的背景更快,这样得到的地图滚动效果更好,分析出来了创建一个层需要的参数,现在我们需要做的是定义一个拥有三个参数的创建层的静态方法,当然还需要初始化的方法update 帧定时器方法,保持地图的每帧滚动,头文件方法申明具体代码如下:
#pragma once
#include &cocos2d.h&
USING_NS_CC;
class Bglayer1:public Layer
static Bglayer1* createBglayer(int zorder, int num, float speed);
void initBglayer(int zorder,int num,float speed);
void update(float dt);
帧定时器刷新事件
一般将属性定义为私有
// 一般将属性定义为私有
上面,创建的是一个名为Bglayer1的层的头文件,接下来,我们看看源文件是怎么实现的:
&span style=&font-size:10&&#include &Bglayer1.h&
USING_NS_CC;
Bglayer1* Bglayer1::createBglayer(int zorder, int num, float speed)
// 正常的层的实现
Bglayer1* bglayer = new Bglayer1;
if (bglayer)
bglayer-&autorelease();
bglayer-&initBglayer(zorder, num, speed);
CC_SAFE_DELETE(bglayer);
void Bglayer1::initBglayer(int zorder, int num, float speed)
this-&speed =
// 将形参传入,之后会用到
this-&num =
// 在正常游戏之中,一般是要写一个set和get方法的,这里为图简单,就这样写
auto size = Director::getInstance()-&getWinSize();
float arr[4] = { 768 - 546, 768 - 560, -200, -210 }; // 将背景图片的背景传图数组
int index = num == 1 ? 2 :
// 将只有一张的图片,重复滚动
for (int i = 1; i &= i++)
// 遍历所有的图片(只有一张的重复)
char str[20];
sprintf(str, &bg_%d_%d.png&, zorder, num == 1 ? 1 : i);
当图片数目为1的时候,还是&span style=&white-space:pre&&
&/span&// 加载同一张图片
auto sp = Sprite::create(str);
sp-&setAnchorPoint(Vec2::ANCHOR_MIDDLE_BOTTOM);// 设置锚点 设置在中间下面
sp-&setTag(i);// 设置标签
sp-&setPosition(Vec2(size.width / 2 + size.width*(i - 1), arr[zorder - 1]));// 设置位置
addChild(sp);
scheduleUpdate();// 开始刷新定时器
void Bglayer::update(float dt)
Size size = Director::getInstance()-&getWinSize();
int index = num == 1 ? 2 : // 跟上面一样
for (int i = 1; i &= i++)
auto sp = getChildByTag(i);// 取标签
sp-&setPositionX(sp-&getPositionX() - speed);// 每帧减去相应的速度
if (sp-&getPositionX() &= -size.width / 2) // 设置边界检测
sp-&setPositionX(size.width / 2 + size.width*(index - 1));
&/pre&&p&&/p&&pre&到这里,我们就实现了地图滚动的封装方法,怎么样,是不是比想象中简单多了,接下来,当然是要在游戏场景调用这个层,具体代码如下,千万别忘记添加头文件哦:
int arr[4] = { 1, 1, 1, 1 };
float speed[4] = { 5, 10, 10, 15 };
for (int i = 1; i &= 4; i++)
auto layer = Bglayer1::createBglayer(i, arr[i-1], speed[i-1]);
addChild(layer, i);
做到这里,地图滚动封装效果就已经实现了,是不是很酷呢,这里附上截图一张
这篇博客写到这里就已经结束了,因为是博主第一次写的技术博客,可能有很多的不足和没讲清楚的地方,需要源文件的可以在评论留言,希望读者和各路大神能够在下面的评论指出来和互相讨论,小生一定会虚心改进,就这样啦,88
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:235次
排名:千里之外}

我要回帖

更多关于 lumion6.0人物走动 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信