gpt4 book ai didi

ios - CCAction block "tweening"

转载 作者:行者123 更新时间:2023-11-28 22:19:44 26 4
gpt4 key购买 nike

是否有一个类似于 SpriteKit 中的 SKActionCCAction 会在 Action 持续期间被多次调用(因此您可以创建基于流逝时间的自定义效果?)

我找到了 CCActionCallBlock,但这只被调用了一次并且没有“时间过去”的参数。

例如 Cocos2D 中的这样的东西 (SpriteKit)。

SKAction *customACtion = [SKAction customActionWithDuration:ANIMATION_TIME actionBlock:^(SKNode *node, CGFloat elapsedTime) {
// Do something here
}];

我想要达到的效果是this .在 SpriteKit 中我可以这样做:

#define ANIMATION_TIME 2

SKAction *customACtion = [SKAction customActionWithDuration:ANIMATION_TIME actionBlock:^(SKNode *node, CGFloat elapsedTime) {
// Determine the percentage of the elapsed time
float percentage = (elapsedTime / ANIMATION_TIME) * 100;
// Put the result in a label
self.label.text = [NSString stringWithFormat: @"%d", percentage];
}];

最佳答案

在cocos2d中你可以创建多个CCActions并将它们放在一个容器(CCSequence)中以便一个接一个地运行。

这是一个复合 Action 的例子..

id action1 = [CCMoveTo actionWithDuration:2 position:ccp(100,100)];
id action2 = [CCMoveBy actionWithDuration:2 position: ccp(80,80)];
id action3 = [CCMoveBy actionWithDuration:2 position: ccp(0,80)];
[sprite runAction: [CCSequence actions:action1, action2, action3, nil]];

action1 将首先执行。当 action1 完成时,将执行 action2。当 action2 完成时,才会执行 action3。

有关更多详细信息,请参阅此 OFFICAL LINK

这可以被这个..

 [self schedule: @selector(updateLabel:) interval:0.1] // Set interval,repeat whatever you want

-(void) updateLabel: (ccTime) dt
{
if(dt>2000){
[self unschedule:@selector(updateLabel)];
}
float percentage =percentage+ (dt/ (ANIMATION_TIME * 10));
// Put the result in a label
self.label.text = [NSString stringWithFormat: @"%d", percentage];

}

关于ios - CCAction block "tweening",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20746302/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com