2012-02-17 36 views
1

最近我一直在問很多問題,對不起。 & lt出現時出現錯誤。cocos2D<

-(void) SpritesDidCollide { 

CCNode *player = [self getChildByTag:kTagPlayer]; 
CCNode *computer = [self getChildByTag:kTagComputer]; 

float xDif = computer.position.x - player.position.x; 
float yDif = computer.position.y - player.position.y; 
float distance = sqrt(xDif * xDif + yDif * yDif); 

if (distance &lt 45;) { //--------------------Right Here------------------- 
    [self unschedule:@selector(SpritesDidCollide)]; 
    [[CCDirector sharedDirector] replaceScene:[CCTransitionFade transitionWithDuration:1 scene:[GameOver node]]]; 
} 

} 
+1

小於'<'; 小於或等於'<=' – 0xDE4E15B 2012-02-17 23:50:38

+0

我試過那些,他們都沒有工作,我得到更多的錯誤... – AaronChapmanDev 2012-02-17 23:51:21

+0

真的嗎?!如果(距離<45) – 0xDE4E15B 2012-02-17 23:52:58

回答

4

爲什麼不乾脆:

if (distance < 45) { 
+0

哇。你是獨一無二的。 – AaronChapmanDev 2012-02-17 23:52:27

+0

等一下!現在屏幕甚至沒有加載,我的程序崩潰。 – AaronChapmanDev 2012-02-17 23:56:52

+0

***聲明失敗 - [CCTimer initWithTarget:selector:interval:]意味着什麼? – AaronChapmanDev 2012-02-17 23:58:18

0
if (distance &lt 45;) { 

再看看。比較'==','<','>','< =','> ='等使用比較運算符。 在你的案例的括號內,我們不需要';'。 '(表情;)'這樣的構造是不可接受的。

if (distance < 45) { 
+0

該代碼理論上工作得很好,但只要我嘗試去那個視圖,它崩潰......如果你不介意......這是我的整個文件。 – AaronChapmanDev 2012-02-18 00:06:12

+0

我們不能幫助您,直到我們看到您的問題。添加更多的代碼和錯誤消息。 – 0xDE4E15B 2012-02-18 00:11:42

+0

我添加了我的整個文件。我也會添加控制檯錯誤消息。一秒。 – AaronChapmanDev 2012-02-18 00:13:27

1

看看'簽名找不到選擇器 - 它有以下形式嗎? - (無效)名稱:(ccTime)DT」

您選擇(SpritesDidCollide)不接受ccTime ...

變化

-(void)SpritesDidCollide 

-(void)SpritesDidCollide:(ccTime)dt 

和變化

[self unschedule:@selector(SpritesDidCollide:)]; // Note added colon : after method name 

也可能需要更改日程安排呼叫並添加冒號:您最初設置的位置

[self schedule: @selector(SpritesDidCollide:)];