2011-02-16 131 views
0


我遇到了一个游戏的问题,我搞乱了,无法弄清楚。在模拟器上工作,但不在设备上?

我在一个名为“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]; 
} 

}

+0

当你按下ctrl + shift + R它说什么? – xuanweng 2011-02-16 05:03:00

回答

1

任何iOS设备要求文件名区分大小写,但模拟器可以找到他们,如果他们不是相同的大写..所以总是仔细检查您的代码中的文件名。

+0

谢谢KDaker。这正是它的原因。 – scottD 2011-02-19 19:34:36

0

好吧...我想通了,所以我想我会张贴在情况下,它可以帮助别人。 在我的GameScene类中,我将一个HUDLayer加载到init方法的屏幕顶部,并且在HUDLayer类中我有一个暂停按钮。在我的代码中,我搞砸了文件的大小写。所以它原来是这个问题的常见嫌疑犯...我的资源之一被输入错误,模拟器让它滑动,而设备将不会..

相关问题