2011-03-31 45 views
1

在这里,我再次与一个cocos2d问题请帮助我。 我有一个游戏设置,我有6-7个不同的场景,其中一个场景有RootViewController,我使用的是核心图形基金会,并像线上绘画一样(GLPaint应用程序 - 在iOS库上提供)。所以我想要什么正在从一个场景移动到另一个场景:[[CCDirector sharedDirector] replaceScene:[CCTransitionFade transitionWithDuration:3 scene:[_ _ _ _ _ _ _ _ _ _]]];如何用RootViewController替换场景?

现在我应该在空白处写什么?我正在替换的场景包含RootViewController,所以请帮助我解决这个问题。

回答

1

无论你想转换还是从你的场景转换到RootViewController,我都不认为你可以在其上使用Cocos2D转换。我假设你想在你的RootViewController的视图上应用淡入淡出的过渡,但你需要使用UIKit,可能是CoreAnimation来做到这一点。据我所知,Cocos2D只能在精灵,图层等上使用Cocos2D转换。基本上任何CCNode基类的后代。 UIKit是完全独立的空间。

这并不是说你不能做你想做的事,但我相信你需要改变你对问题的思考。一个可能的解决方案......

  • 创建当你想淡出场景以在虚拟场景中的视图控制器褪色
  • /缩小应用核心动画淡出包含什么
  • 虚拟场景视图控制器

这是非常松散的伪代码,但从我体验合并UIKit组件与Cocos2D它似乎是一个很好的开始。

编辑:代码示例为动画视图控制器与现场

动画在cocos2d的虚拟场面我就有点生疏,但应该是这样的......

CCScene* dummyScene = [CCScene node]; 
[[CCDirector sharedDirector] replaceScene:[CCTransitionFade transitionWithDuration:3 scene:dummyScene]]; 

现在动画视图控制器....

[UIButton beginAnimations:nil context:NULL]; 
... do fade in/out, etc with your view controller ... 
[UIView commitAnimations]; 

退房的Core Animation Guide为所有的概述不同的动画/修改你可以做。我忘记你如何消除它。我认为这可能与在beginAnimationscommitAnimations调用之间更改viewController视图的不透明度一样简单。我会说这是你的第一次尝试。你可能希望从0开始不透明,所以它完全不可见,然后过渡到1.0,至少如果我理解正确的话,它应该是完全不透明的。您还需要将viewController放在视图堆栈的前面。有多种方法可以在UIView API中执行此操作。

+0

罗布感谢,但我想要的是我有两个场景在我的游戏,我做了什么是第一个场景包含菜单项和点击各自的菜单项用户将导航到其他场景。但我有一个viewController自动获取(GLPaint风格)&现在我的问题是我如何从我的菜单场景导航到这个视图控制器在xcode我们使用pushview /流行视图控制器导航,但我应该写在这里从菜单导航到这个viewController? – 2011-04-01 05:15:18

+0

我的描述有点迷失。如果我能够试图打破你的情况,那就清楚了。首先,你有一个带菜单项的Cocos2D场景,当你点击其中一个菜单项时,你想转换到你的视图控制器? – 2011-04-04 21:12:58

+0

是的绝对是现在你让我罗布请帮我出去的人 – 2011-04-05 11:30:47