小编blu*_*unt的帖子

cocos2d使用CCSpeed动态更改动画速度

在简单的游戏中,角色具有大约15帧的步行动画.基于加速度计的速度在任一方向上都会发生变化.我希望动画相应地加速或减速.我意识到,一旦动画初始化,你就无法改变延迟速度,而是需要创建一个新的动画.但由于速度几乎不断变化,如果我继续重新设置动画,它将始终停留在同一帧上.

有没有办法找到动画当前所在的帧,停止它,然后创建一个具有相同帧的新动画,但从最后一个动画结束开始?

否则,是否有人知道如何实现动态变化的动画延迟时间?

编辑:

我尝试使用CCSpeed从Learn Cocos2d 2中的示例执行此操作.以下是代码:

CCRepeatForever *walkLeftRepeat = [CCRepeatForever actionWithAction:[CCAnimation animationWithSpriteFrames:walkLeftFrames]];

self.walkLeft = [CCSpeed actionWithAction:walkLeftRepeat speed:animationWalkingSpeed];
Run Code Online (Sandbox Code Playgroud)

我收到以下警告:不兼容的指针类型将'CCRepeatForever*'发送到'CCActionInterval*'类型的参数

以下是我关注的示例:

CCRepeatForever* repeat = [CCRepeatForever actionWithAction:rotateBy];
CCSpeed* speedAction = [CCSpeed actionWithAction:repeat speed:0.5f];
Run Code Online (Sandbox Code Playgroud)

第二次编辑:

然后我尝试了这个:

CCAnimation *walkLeftRepeat = [CCAnimation animationWithSpriteFrames:walkLeftFrames];
CCAnimate *temp = [CCAnimate actionWithAnimation:walkLeftRepeat];
CCAnimate*temp2 = [CCRepeatForever actionWithAction:temp];
self.walkLeft = [CCSpeed actionWithAction:temp2 speed:animationWalkingSpeed];
[_guy runAction:_walkLeft];
Run Code Online (Sandbox Code Playgroud)

最后编辑.通过在ccanimation中添加延迟来解决这个没有出现的问题.

这不会给出任何错误,但没有任何反应.谢谢!

iphone animation cocos2d-iphone

3
推荐指数
1
解决办法
3235
查看次数

arc4random抛出巨大的数字

在cocos2d游戏中,我使用arc4random来生成这样的随机数:

    float x = (arc4random()%10 - 5)*delta;
Run Code Online (Sandbox Code Playgroud)

(delta是计划更新方法中更新之间的时间)

    NSLog(@"x: %f", x);
Run Code Online (Sandbox Code Playgroud)

我一直在检查它们.

我得到的大多数数字都是这样的:

    2012-12-29 15:37:18.206 Jumpy[1924:907] x: 0.033444
Run Code Online (Sandbox Code Playgroud)

要么

    2012-12-29 15:37:18.247 Jumpy[1924:907] x: 0.033369
Run Code Online (Sandbox Code Playgroud)

但出于某种原因,我有时会得到这样的数字:

    2012-12-29 15:37:18.244 Jumpy[1924:907] x: 71658664.000000
Run Code Online (Sandbox Code Playgroud)

编辑:Delta几乎总是:

    2012-12-29 17:01:26.612 Jumpy[2059:907] delta: 0.016590
Run Code Online (Sandbox Code Playgroud)

我认为它应该返回-5到5范围内的数字(乘以一些小数字).为什么我得到这样的数字?

iphone objective-c cocos2d-iphone arc4random

2
推荐指数
1
解决办法
221
查看次数

CCParticleFire和CCParticleSystemQuad文件未加载

我正在尝试创建像这样的粒子效果:

emitter = [[CCParticleSystemQuad alloc] initWithTotalParticles:45];
[emitter setEmitterMode: kCCParticleModeGravity];
emitter.position = ccp(100, 100);
emitter.texture=[[CCTextureCache sharedTextureCache] addImage:@"fire.png"];
CCParticleFire *fire = [[CCParticleFire alloc]init];
fire.position = ccp(0,0);
[self addChild:fire];
[self addChild:emitter];
Run Code Online (Sandbox Code Playgroud)

我总是得到以下错误:

    013-01-11 17:45:49.263 Jumpy[8945:c07] -[CCFileUtils fullPathFromRelativePath:resolutionType:] : cocos2d: Warning: File not found: fire.png
    2013-01-11 17:45:49.264 Jumpy[8945:c07] cocos2d: CCTexture2D. Can't create Texture. cgImage is nil
    2013-01-11 17:45:49.264 Jumpy[8945:c07] cocos2d: Couldn't add image:fire.png in CCTextureCache
    2013-01-11 17:45:49.265 Jumpy[8945:c07] cocos2d: CCTexture2D. Can't create Texture. cgImage is nil
    2013-01-11 17:45:49.265 Jumpy[8945:c07] cocos2d: Couldn't add image:fire.png in …
Run Code Online (Sandbox Code Playgroud)

cocos2d-iphone ccparticlesystem cctexturecache

2
推荐指数
1
解决办法
2069
查看次数