我有一个序列的SKActions,我想玩,但他们没有正确发挥。眼睛只会闭上,再也不会睁开。我不知道为什么会发生这种事,但也许你知道!我们很感谢你的帮助,谢谢。
-(void)blink {
SKAction *delay = [SKAction waitForDuration:3];
SKAction *blinkEye = [SKAction resizeToHeight:1 duration:.2];
SKAction *delay2 = [SKAction waitForDuration:.5];
SKAction *openEye = [SKAction resizeToHeight:3 duration:.2];
SKAction *group1 = [SKAction group:@[delay,blinkEye]];
SKAction *group2 = [SKAction group:@[delay2,openEye]];
SKAction *all = [SKAction sequence:@[group1,group2]];
SKAction *repeat = [SKAction repeatActionForever:all];
[self runAction:repeat];
}MyScene.m
-(void)update:(CFTimeInterval)currentTime {
/* Called before each frame is rendered */
Player *player = (Player *)[self childNodeWithName:@"player"];
Player *lefteye = (Player *)[player childNodeWithName:@"leye"];
Player *righteye = (Player *)[player childNodeWithName:@"reye"];
[lefteye blink];
[righteye blink];
}发布于 2014-08-17 17:27:20
没有必要分组,这是造成问题的原因。
SKAction *delay = [SKAction waitForDuration:3];
SKAction *blinkEye = [SKAction resizeToHeight:1 duration:.2];
SKAction *delay2 = [SKAction waitForDuration:.5];
SKAction *openEye = [SKAction resizeToHeight:3 duration:.2];
SKAction *all = [SKAction sequence:@[delay,blinkEye, delay2,openEye]]];让眨眼看每一个帧的更新都是行不通的。这个函数每秒被调用60次。
相反,在创建眼睛对象时这样做:
SKAction *delay = [SKAction waitForDuration:3];
SKAction *blinkEye = [SKAction resizeToHeight:1 duration:.2];
SKAction *delay2 = [SKAction waitForDuration:.5];
SKAction *openEye = [SKAction resizeToHeight:3 duration:.2];
SKAction *all = [SKAction sequence:@[delay,blinkEye, delay2,openEye]]];
//create the lefteye object
lefteye = [[Eye alloc] init...];
//create the righteye object
righteye = [[Eye alloc] init...];
[lefteye repeatActionForever:all];https://stackoverflow.com/questions/25351706
复制相似问题