Tôi muốn có một tỷ lệ sprite lên xuống một lần mỗi giây để làm cho nó có vẻ như nó là phồng lên và đập. Tôi có thể làm cái này như thế nào?Làm thế nào để làm cho quy mô sprite cocos2d lên và xuống (cho một hiệu ứng rung) mỗi giây?
7
A
Trả lời
2
Bạn có thể sử dụng hành động [CCScaleTo ..] đơn giản hoặc nếu bạn muốn tạo "hiệu ứng" của riêng mình, bạn có thể nâng cấp CCFiniteTimeAction. Tôi muốn là người đầu tiên:
CCSprite * sprite = ...; // create the sprite.
sprite.anchorPoint = ccp(0.5, 0.5); center the pivot
id myAction = [CCRepeatForEver actionWithActions:[CCScaleTo actionWithDuration:0.5 scaleX:2.0 ScaleY:2.0],[CCScaleTo actionWithDuration:0.5 scaleX:0.5 ScaleY:0.5], nil];
[sprite runAction:myAction];
sử dụng CCEase để làm cho hình ảnh động phi tuyến
id myAction = [CCRepeatForEver actionWithActions:[CCEaseInOut actionWithAction:[CCScaleTo actionWithDuration:0.5 scaleX:2.0 ScaleY:2.0] rate:2.0],[CCEaseInOut actionWithAction:[CCScaleTo actionWithDuration:0.5 scaleX:0.5 ScaleY:0.5] rate:2.0], nil];
bài này có thể chứa lỗi. nhưng tôi hy vọng bạn hiểu cách để đi đến mục tiêu.
14
Vì bài đăng trước có chứa lỗi cú pháp. Để chính xác hơn, tôi đăng mã hoạt động:
CCSprite * sprite = ...; // create the sprite.
id scaleUpAction = [CCEaseInOut actionWithAction:[CCScaleTo actionWithDuration:1 scaleX:1.0 scaleY:1.0] rate:2.0];
id scaleDownAction = [CCEaseInOut actionWithAction:[CCScaleTo actionWithDuration:0.5 scaleX:0.8 scaleY:0.8] rate:2.0];
CCSequence *scaleSeq = [CCSequence actions:scaleUpAction, scaleDownAction, nil];
[sprite runAction:[CCRepeatForever actionWithAction:scaleSeq]];
chỉ hoạt ảnh này một lần? – Swastik