我的项目是一个cocos2d游戏项目,但我添加了一个uiviewcontroller作为用户的loginview。在我的项目中的第一个场景是徽标显示场景,之后它将进入菜单屏幕,但我需要传递到我的uiviewcontroller(登录)而不是菜单屏幕,我尝试了很多方法但崩溃。
-(id) init
{
if( (self=[super init] )) {
CCSprite *sprBack = [CCSprite spriteWithFile:@"logo.png"];
[sprBack setPosition:ccp(SCREEN_WIDTH / 2, SCREEN_HEIGHT / 2)];
[self addChild:sprBack];
[self schedule:@selector(logoTimer:) interval:3];
}
return self;
}
-(void) logoTimer: (ccTime) dt
{
[[CCDirector sharedDirector] replaceScene:[CCTransitionFade transitionWithDuration:0.5f scene:[TitleLayer node ] ]];
}
我的uiviewcontroller名称是loginviewcontroller。
我需要像这样传递场景
[[CCDirector sharedDirector] replaceScene:[CCTransitionFade transitionWithDuration:0.5f scene:[loginviewcontroller node ] ]];
但显示错误,我厌倦了许多方法,但不幸的是没有什么能给我正确的解决方案。
另一件事loginviewcontroller不是节点,它的uiviewcontroller。 我也尝试了这种方法,但它在徽标场景中出现了,没有发生页面转换。
-(void) logoTimer: (ccTime) dt{
UIViewController *cocos = [[LogoViewController alloc] init];
[cocos.navigationController dismissViewControllerAnimated:YES completion:nil];
[cocos.navigationController popViewControllerAnimated:YES];
}
请帮帮我。
答案 0 :(得分:1)
在didFinishLaunchingWithOptions
中更改并将初始视图控制器设置为Login View Controller,并在newMethod
中的LoginViewController
中移动游戏引擎的设置。游戏设置创建一个新的视图控制器,它将打开当前的菜单屏幕。如果凭据成功,请调用newMethod
,然后推送在游戏设置中实例化的视图控制器,然后弹出以返回登录。