2011-02-16 180 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類中我有一個暫停按鈕。在我的代碼中,我搞砸了文件的大小寫。所以它原來是這個問題的常見嫌疑犯...我的資源之一被輸入錯誤,模擬器讓它滑動,而設備將不會..

相關問題