我遇到了一個遊戲的問題,我搞亂了,無法弄清楚。在模擬器上工作,但不在設備上?
我在一個名爲「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