Cocos2d 如何切换场景
Posted
技术标签:
【中文标题】Cocos2d 如何切换场景【英文标题】:Cocos2d How to Switch Scenes 【发布时间】:2013-05-19 18:38:30 【问题描述】:如何在 cocos2d 中切换场景?我有我的主要课程 "HellowWorldLayer.h/.m" ,但我似乎无法正确切换场景。我试过了:
[[CCDirector sharedDirector] replaceScene:[Race node]];
//And
[[CCDirector sharedDirector] replaceScene:[Race Scene]];
我设置了一个断点,我可以看到它正在进入新场景,但是我添加到新场景中的按钮没有出现。我正在正确创建按钮。然后我将它添加到新场景中的屏幕上,如下所示:
[self addChild:Menu];
我刚刚从 HolloWorldLayer.m/.h 中获取了所有代码并将其复制到新场景(类)中,但我无法正确过渡。我是 xcode 和 cocos2d 的新手,如果这真的很简单,我很抱歉。
种族.m
#import "Race.h"
#import "Intermediary.h"
@implementation Race
+(CCScene *) scene
// 'scene' is an autorelease object.
CCScene *scene = [CCScene node];
// 'layer' is an autorelease object.
Race *layer = [Race node];
// add layer as a child to scene
[scene addChild: layer];
// return the scene
return scene;
-(id) init
if( (self=[super init]) )
NSLog(@"Racing!");
CCLabelTTF *startLbl = [CCLabelTTF labelWithString:@"Start" fontName:@"Marker Felt" fontSize:20];
CCMenuItemLabel *startMenu = [CCMenuItemLabel itemWithLabel:startLbl block:^(id sender)
NSLog(@"I have been pushed!");
];
startMenu.position = ccp(50,50);
CCMenu *Menu = [CCMenu menuWithItems:startMenu, nil];
[self addChild:Menu];
return self;
@end
【问题讨论】:
【参考方案1】:您的代码对我有用。
这里是示例:Download
使用过渡效果更好。
[[CCDirector sharedDirector] replaceScene:[CCTransitionFade transitionWithDuration:1.0 scene:[Race scene] ]];
【讨论】:
感谢您的回复!我从 HelloWorldLayer 复制了场景代码,然后将这两个名称更改为我的类名。按钮仍然没有出现。 好的,给我看有问题的菜单初始化代码...确保放置图像 我想这就是你的意思。 所以它不起作用然后我把它放在一个按钮中,它现在起作用了!非常感谢。以上是关于Cocos2d 如何切换场景的主要内容,如果未能解决你的问题,请参考以下文章
cocos2d 1.0 beta 两个场景之间的过渡和程序刚刚退出?
如何从正在运行的(uiviewcontroller)应用程序启动 cocos2d 场景