我遇到了一个游戏的问题,我搞乱了,无法弄清楚。在模拟器上工作,但不在设备上?
我在一个名为“Map”的类中有一个CCMenu,它给了用户一个选择要去哪个游戏级别的选择。我为每个menuItem设置一个标签,并将所有menuItem的选择器设置为一个名为“goToScene”的方法。在该方法中,我计算出哪个级别被选中,并使用sharedDirector将Map场景替换为适当的级别层。我将列出下面的代码。
该代码在模拟器中正常工作,但在我的设备(iphone 4)上,当我单击任何menuItem时,它会冻结。我之前有过“在模拟器上工作但不在设备上”的问题,结果证明是我的一张图片的大写错误....所以我查了一下所有资源,他们都很好。我也清理了这个项目,但没有帮助。
在此先感谢您对此的任何想法。
斯科特
level= [CCSprite spriteWithFile:@"level.png"];
CCMenuItemImage *one =[CCMenuItemImage itemFromNormalImage:@"one.png" selectedImage:@"one.png" target:self selector:@selector(goToScene:)];
CCMenuItemImage *two= [CCMenuItemImage itemFromNormalImage:@"two.png" selectedImage:@"two.png" target:self selector:@selector(goToScene:)];
CCMenuItemImage *three= [CCMenuItemImage itemFromNormalImage:@"three.png" selectedImage:@"three.png" target:self selector:@selector(goToScene:)];
one.tag=1;
two.tag=2;
three.tag=3;
CCMenu *menu = [CCMenu menuWithItems: one,two,three,nil];
[menu alignItemsHorizontally];
level.position = ccp(screenSize.width/2,screenSize.height-50);
[self addChild:level];
[self addChild:menu];
[self schedule: @selector(tick:)];
}
return self;
}
这里是被调用的方法。这是它的凝固起来...
-(void)goToScene:(id)sender{
CCMenuItem *temp = (CCMenuItem *)sender;
if (temp.tag==1) {
GameScene *scene = [[GameScene alloc] init];
Level1 *sc = [[Level1 alloc] init];
[scene addChild:sc];
[[CCDirector sharedDirector]replaceScene:scene];
}
if (temp.tag==2) {
GameScene *scene = [[GameScene alloc]init];
Level2 *sc = [[Level2 alloc]init];
[scene addChild:sc];
[[CCDirector sharedDirector]replaceScene:scene];
}
if (temp.tag==3) {
GameScene *scene = [[GameScene alloc]init];
Level3 *sc = [[Level3 alloc]init];
[scene addChild:sc];
[[CCDirector sharedDirector]replaceScene:scene];
}
}
当你按下ctrl + shift + R它说什么? – xuanweng 2011-02-16 05:03:00