cocos2d实现精灵在屏幕上随机的运动
2013-03-20 10:25
357 查看
继续进行cocos2d的学习,每天学到一点东西都有一点小成就感,这个小问题困惑了我很久,不过好在我解决了它
下面来看看代码的片段吧,希望对你们有所帮助
还有一个问题就是精灵碰撞后会弹开,这个问题一直没实现,如果那位有类似的项目做过,欢迎交流
下面来看看代码的片段吧,希望对你们有所帮助
-(id)init { if(self = [super init]) { //在这里面声明精灵类,定义精灵初始位置,并加入层中 for(int i = 0 ; i<numberOfBalloon;i++) { //声明精灵 CCSprite *ballon = [CCSprite spriteWithFile:@"balloon.png"]; //定义精灵的初始位置 ballon.position =CGPointMake([ballon texture].contentSize.width*i+ [ballon texture].contentSize.width*0.5f,- [ballon texture].contentSize.height); //将精灵添加到层中 [self addChild:ballon z:0 tag:2]; //把精灵都添加到数组中,因为我这里是需用到多个精灵 [ballonarray addObject:ballon]; } [self scheduleUpdate]; } return self; } -(void) update: (ccTime) dt { for(int i=0;i<[ballonarray count];i++) { //遍历数组中的精灵 CCSprite *ballon = [ballonarray objectAtIndex:i]; //如果没有精灵运动的话就执行下面的语句 if([ballon numberOfRunningActions]==0) { CGSize size = [[CCDirector sharedDirector]winSize]; //定义精灵的位置为随机位置 CGPoint position = CGPointMake(size.width*CCRANDOM_0_1() -ballon.contentSize.width/2, size.height*CCRANDOM_0_1() -ballon.contentSize.width/2); //限制精灵的运动范围不让其出界 if(position.x<ballon.contentSize.width/2) { position.x = ballon.contentSize.width/2; } if(position.y<ballon.contentSize.height/2) { position.y = ballon.contentSize.height/2; } float time = ccpDistance(position, ballon.position)/speed; //表示在time这个时间段内移动到position这个位置,因为是在update中运行的 //这个方法,所以精灵会一直的重复这个动作,并且不会有明显的间断 id actions = [CCMoveTo actionWithDuration:time position:position]; [ballon runAction:actions]; } } }
还有一个问题就是精灵碰撞后会弹开,这个问题一直没实现,如果那位有类似的项目做过,欢迎交流
相关文章推荐
- cocos2d--仿真树叶飘落效果的实现(精灵旋转、翻转、钟摆运动等综合运用)
- cocos2d-x-3.2 Follow屏幕锁定精灵运动
- cocos2d-x学习笔记(五)仿真树叶飘落效果的实现(精灵旋转、翻转、钟摆运动等综合运用)
- <转>cocos2d-x学习笔记(五)仿真树叶飘落效果的实现(精灵旋转、翻转、钟摆运动等综合运用)
- (转)cocos2d-x学习笔记(五)仿真树叶飘落效果的实现(精灵旋转、翻转、钟摆运动等综合运用)
- Cocos2d-x学习笔记(五)仿真树叶飘落效果的实现(精灵旋转、翻转、钟摆运动等综合运用)
- quick-cocos2d-x(lua) 拖动精灵使其在屏幕移动的效果实现
- cocos2d-x学习笔记(五)仿真树叶飘落效果的实现(精灵旋转、翻转、钟摆运动等综合运用)
- 基于Windows API的粒子随机运动C++实现
- cocos2d-x 2.2版本下实现随机姓名产生
- cocos2d-x 让精灵按照自己设定的运动轨迹行动
- cocos2d-x3.6 连连看随机地图实现
- Cocos2D-x精灵的简单实现和函数调用基本流程
- 学习cocos2d-x之路(5)--实现屏幕滚动
- Cocos2d-JS 实现将TiledMap中的每个 tile 变成物理精灵的方法
- cocos2d-x学习笔记(三)让精灵按照自己设定的运动轨迹行动(曲线移动)。(以椭圆轨迹为例)。
- Cocos2D-x游戏开发之十六:创建会运动的精灵
- 实现精灵沿着圆形轨迹运动
- cocos2d-x学习笔记(三)让精灵按照自己设定的运动轨迹行动(曲线移动)。(以椭圆轨迹为例)。
- 【Cocosd2d实例教程六】Cocos2d实现屏幕背景的自动滚动