Objective c 多精灵动作
我正在使用Cocos2d引擎,我遇到了一个奇怪的问题 我有一个雪碧。另外,我有两个精灵的动画。我想在应用程序加载时播放一个动画,然后在调用ccTouchevent后播放第二个动画Objective c 多精灵动作,objective-c,cocos2d-iphone,ccsprite,Objective C,Cocos2d Iphone,Ccsprite,我正在使用Cocos2d引擎,我遇到了一个奇怪的问题 我有一个雪碧。另外,我有两个精灵的动画。我想在应用程序加载时播放一个动画,然后在调用ccTouchevent后播放第二个动画 walkAnim = [CCAnimation animation]; dropAnim = [CCAnimation animation]; for( int q=1;q<12;q++){ [walkAnim addFrameWithFilename: [NSString stringWithFor
walkAnim = [CCAnimation animation];
dropAnim = [CCAnimation animation];
for( int q=1;q<12;q++){
[walkAnim addFrameWithFilename: [NSString stringWithFormat:@"walkforward_%.2d.png", q]];
[dropAnim addFrameWithFilename: [NSString stringWithFormat:@"drop_%.2d.png", q]];
}
action = [CCAnimate actionWithAnimation:walkAnim];
action.duration = 2;
id act = [CCRepeatForever actionWithAction:action];
[sprite runAction:act];
我尝试了许多创建动作的方法:我尝试添加另一个动画动作,尝试替换当前动画,但所有操作都会导致崩溃
[action setAnimation:dropAnim];
及
及
崩溃发生在[cAnimate actionWithAnimation:]
+(id) actionWithAnimation: (CCAnimation*)anim
{
return [[[self alloc] initWithAnimation:anim restoreOriginalFrame:YES] autorelease];
}
谢谢
要从其他方法启动操作,您必须保留该操作
例如:[操作保留]要从其他方法启动操作,必须保留该操作
例如:[保留行动];然后别忘了释放它
-(void)create{
for( int q=1;q<12;q++){
[playerWalkAnim addFrameWithFilename: [NSString stringWithFormat:@"walkforward_%.2d.png", q]];
}
playerAction = [CCAnimate actionWithAnimation:playerWalkAnim];
playerAction.duration = 2;
[playerAction retain];
}
-(void)launch{
[player1 runAction:playerAction];
}
-(无效)创建{
对于(int q=1;qi)如果你已经找到了你的问题的答案,请在这里回答你自己并接受它,这样其他人可以在他们找到这篇文章时使用它。祝你好运!注意“并接受它”部分,URLArenzo。此外,请仔细考虑您的标签。这与XCODE 4无关——这是语言/ API问题。谢谢,我明天就能接受它。
id action = [CCRepeatForever actionWithAction:[CCAnimate actionWithAnimation:dropAnim]];
[player1 runAction:action];
+(id) actionWithAnimation: (CCAnimation*)anim
{
return [[[self alloc] initWithAnimation:anim restoreOriginalFrame:YES] autorelease];
}
-(void)create{
for( int q=1;q<12;q++){
[playerWalkAnim addFrameWithFilename: [NSString stringWithFormat:@"walkforward_%.2d.png", q]];
}
playerAction = [CCAnimate actionWithAnimation:playerWalkAnim];
playerAction.duration = 2;
[playerAction retain];
}
-(void)launch{
[player1 runAction:playerAction];
}