2012-06-13 32 views
8

Tôi muốn biết những gì tôi nên sử dụng ở vị trí củaCocos2d - animationwithframes: chậm trễ: phản

animationWithFrames:delay: 

actionWithAnimation:restoreOriginalFrame: 

kể từ khi họ đưa ra một cảnh báo rằng họ đã bị phản đối.

+2

kiểm tra các tệp CCDeprecated.h và .m để tìm hiểu cách mã không dùng nữa nên được viết – LearnCocos2D

Trả lời

12

Cocos2d 2.0 sử dụng

CCAnimation

+(id) animationWithSpriteFrames:(NSArray*)frames delay:(float)delay 

CCAnimate

+(id) actionWithAnimation: (CCAnimation*)anim 

Documents:

http://www.cocos2d-iphone.org/api-ref/2.0.0/interface_c_c_animation.html

http://www.cocos2d-iphone.org/api-ref/2.0.0/interface_c_c_animate.html

+0

Câu trả lời hay, nhưng nó thiếu một chi tiết trong nửa thứ hai của câu hỏi. Cụ thể, bạn cũng phải đặt thuộc tính 'restoreOriginalFrame' của hoạt ảnh để khớp với những gì đã được chỉ định trước đó trong phiên bản không dùng nữa. Xem câu trả lời của Julio dưới đây. (BTW, liên kết doc không còn hoạt động nữa.) – Dalmazio

11

Thay đổi duy nhất bạn cần làm là sử dụng thuộc tính mới: restoreOriginalFrame.

Remove restoreOriginalFrame từ các nhà xây dựng, sau đó, trong một dòng mới, thiết lập thuộc tính:

animation.restoreOriginalFrame = NO; 

Vậy là xong!

+0

Đây là câu trả lời đúng cho phần thứ hai của câu hỏi của OP. Đặt thuộc tính 'restoreOriginalFrame' của hoạt ảnh để khớp với những gì đã được chỉ định trước đây là chi tiết quan trọng mà câu trả lời được chấp nhận bị bỏ qua. – Dalmazio

0
CCAnimation *sampleAnim = [CCAnimation animationWithAnimationFrames: 
            sampleAnimFrames delayPerUnit:0.2f loops:7]; 
0

Tôi có cùng vấn đề trong dự án tôi sử dụng.

CCSprite *image = [CCSprite spriteWithSpriteFrameName:@"a0001.png"]; 
     image.position = ccp(s.width/2,s.height/2); 
     [self addChild:image]; 
     image.tag = 1; 

     NSMutableArray *frames = [[NSMutableArray alloc] init]; 
     for (int i = 1; i <= 10; i++) { 
      NSString *frameName = [NSString stringWithFormat:@"a%04i.png",i]; 
      [frames addObject:[[CCSpriteFrameCache sharedSpriteFrameCache] spriteFrameByName:frameName]]; 
     } 
     CCAnimation *ani = [CCAnimation animationWithSpriteFrames:frames delay:1.0f/8.0f]; 
     [image runAction:[CCAnimate actionWithAnimation:ani]]; 

Điều này phù hợp với tôi.

Các vấn đề liên quan