1

我正在使用 cocos2D 开发游戏,并且正在从作为 viewController 类的主视图转移到 gameScene。我在主屏幕中使用 UIButtons,并且CATransition在视图出现时使用动画来显示按钮。加载游戏场景时,我没有释放主页视图。主视图出现在游戏场景的后面。当游戏场景结束时,我隐藏游戏场景并显示家庭场景。

这是创建按钮的代码:

// Play Button
btnPlay = [[UIButton alloc]init];
btnPlay.frame = CGRectMake(65,95,124,50);
[btnPlay addTarget:self action:@selector(btnPlayAction) forControlEvents:UIControlEventTouchUpInside];
[btnPlay setBackgroundColor:[UIColor clearColor]];
[btnPlay setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];
[btnPlay setHidden:YES];
btnPlay.titleLabel.font = [UIFont fontWithName:@"NoteWorthy" size:25.0f];
[btnPlay setBackgroundImage:[UIImage imageNamed:@"play.png"] forState:UIControlStateNormal];
[self.view addSubview:btnPlay];
[btnPlay setShowsTouchWhenHighlighted:YES];

CATransition是按钮的代码:

CATransition *animation3 = [CATransition animation];
[animation3 setDuration:3.0f];
[animation3 setType:kCATransitionReveal];
[animation3 setTimingFunction:[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut]];
[[btnPlay layer] addAnimation:animation3 forKey:@"SwitchToView"];

[btnPlay setHidden:NO];

对于很少的重播,过渡进展顺利。但经过几次重播后,有时kCATransitionReveal会发生,有时会发生 kCATransitionFromLeft。但我没有kCATransitionFromLeft在我的代码中使用过。它是如何发生的?

谢谢您的帮助。

4

0 回答 0